Dice the carrot, onions, and celery.
Heat the olive oil and butter in a large pot over medium heat. Add the diced vegetables and saute for about 5 minutes. Add the garlic and saute for 30-60 seconds, just until fragrant.
Add the flour, cook and stir for about 2 minutes.
Stir in the diced tomatoes, tomato paste, broth, basil, oregano, sugar, salt, and pepper. Bring to a boil, then turn down to medium-low heat.
Simmer for 30 minutes. Carefully ladle or pour soup into a blender. Purée soup until smooth. (If you've never pureed soup in your blender before, start by blending just half the batch.)
Return to the pot, stir in the cream, and heat through.
Either stir in the parmesan cheese, or use it to garnish individual bowls of soup.