Prepare the Ingredients: Wash and chop the tomatoes if using fresh ones. Chop the onion and mince the garlic.
Sauté the Onion and Garlic: Heat the olive oil in a large pot over medium heat. Add the chopped onion and cook until translucent, about 5 minutes. Add the minced garlic and cook for another 1-2 minutes, until fragrant.
Add the Tomatoes and Broth: Add the chopped tomatoes (or canned tomatoes with their juice) to the pot. Pour in the chicken or vegetable broth. Bring the mixture to a boil, then reduce the heat and let it simmer for about 20-25 minutes, until the tomatoes are soft and well-cooked.
Blend the Soup: Using an immersion blender, blend the soup until smooth. If you don't have an immersion blender, carefully transfer the soup to a regular blender in batches and blend until smooth. Return the blended soup to the pot.
Add the Basil and Seasonings: Stir in the chopped fresh basil, and add sugar (if using), salt, and pepper to taste. Let the soup simmer for another 5 minutes to allow the flavors to meld together.
Add the Cream (Optional): For a creamier soup, stir in the heavy cream and heat through. Do not bring it to a boil after adding the cream.
Serve: Ladle the soup into bowls and garnish with extra basil leaves and grated Parmesan cheese, if desired. Serve hot.