01 - Heat olive oil in a large pot over medium heat. Add the onion, garlic, and carrot; sauté for 5 minutes until softened and fragrant.
02 - Add the chopped tomatoes to the pot and cook for another 5 minutes, stirring occasionally, until they begin to break down and release their juices.
03 - Pour in the vegetable broth and add the basil, salt, pepper, and sugar if using. Bring to a boil, then reduce the heat and let it simmer uncovered for 20 minutes until all vegetables are tender.
04 - Remove the pot from heat. Use an immersion blender to puree the soup directly in the pot until silky smooth. Alternatively, transfer to a countertop blender in batches and blend until smooth.
05 - If using, stir in the heavy cream or milk. Warm the soup through gently over low heat, but do not bring to a boil.
06 - Taste the soup and adjust the seasoning with additional salt or pepper as needed. Ladle into bowls and garnish with fresh basil leaves.