In a medium pot heat oil, and sauté onion until soft and translucent. Add garlic and cook until it's fragrant for about 1 minute.
Add flour, and cook for 1 more minute.
Add the tomatoes, and the vegetable stock. Simmer over medium heat for about 10-15 minutes.
Using an immersion blender, blend the soup until smooth and season with salt and pepper to taste.
Serve warm with croutons.
Notes
To make homemade croutons: Tear stale bread into pieces and spread on a baking tray. Drizzle with olive oil, and season with garlic powder, salt, and pepper. Bake in the oven at 375°F (190°C) for a few minutes or until they're golden and crispy but not burnt.
To make this soup extra creamy: Either use soy heavy cream and stir it in. Or make homemade cashew cream. To make vegan cashew cream, just soak 1/2 cup of cashews for a couple of hours then blend them with 1/2 cup of water until smooth.
To blend the soup: Either use an immersion blender or a powerful blender. I find it easier and quicker to use an immersion blender, but if you're worried that the tomato soup might splatter during the process then use a blender instead.
You can add some dried/fresh herbs such as basil or oregano if you like. Just make sure that you add them before simmering the soup for the flavors to settle.