In a large pot, heat the olive oil over medium heat. Add the diced onion and sauté for about 5 minutes, or until translucent.
Stir in the minced garlic, diced carrot, and diced celery. Cook for another 5 minutes until the vegetables are softened.
Add the crushed tomatoes, vegetable broth, dried basil, dried oregano, salt, and pepper. Bring the mixture to a boil, then reduce the heat and let it simmer for 20-25 minutes.
If desired, stir in the sugar to balance the acidity of the tomatoes.
Remove the pot from heat and use an immersion blender to puree the soup until smooth. Alternatively, you can carefully transfer the soup in batches to a blender.
Return the soup to low heat and stir in the heavy cream if using. Add the fresh basil leaves and cook for an additional 5 minutes.
Taste and adjust seasoning if necessary before serving.