In a large pot, heat the olive oil over medium heat. Add the diced onion and sauté until translucent, about 5 minutes.
Stir in the minced garlic and cook for an additional minute until fragrant.
Add the chopped fresh tomatoes (or crushed tomatoes) to the pot, followed by the vegetable broth. If using fresh tomatoes, you can also add the sugar now to balance the acidity.
Bring the mixture to a boil, then reduce the heat and let it simmer for about 20 minutes. Stir occasionally.
Once the tomatoes have broken down and the soup has thickened, remove it from heat.
Using a blender or immersion blender, purée the soup until smooth. If desired, leave some texture for a chunkier soup.
Season with salt, black pepper, and dried oregano (if using). Adjust seasoning to taste.
Serve hot, garnished with fresh basil leaves and a swirl of heavy cream if desired.