Heat the olive oil in a large soup pot over medium heat.
Add the diced onion and cook for 6 to 8 minutes until softened and lightly golden.
Stir in the garlic and cook for 1 minute until fragrant.
Add the tomatoes and vegetable broth. Break up the tomatoes with a spoon.
Bring to a gentle simmer and cook for 20 to 25 minutes.
Stir in the fresh basil leaves.
Blend the soup until completely smooth using an immersion blender or countertop blender.
Reduce the heat to low and stir in the heavy cream.
Season with salt, black pepper, and optional sugar if needed.
Warm gently for 2 to 3 minutes without boiling.
Serve hot with fresh basil, parmesan cheese, and crusty bread if desired.