In a large pot, melt butter over medium heat. Add diced onion and sauté for 5 minutes until soft and translucent.
Add minced garlic and cook for 1 minute until fragrant, stirring constantly to prevent burning.
Stir in tomato paste and cook for 2 minutes to deepen the flavor.
Add canned tomatoes with their juice, vegetable broth, sugar, salt, and pepper. Bring to a boil, then reduce heat and simmer for 20 minutes.
Remove from heat and add fresh basil. Use an immersion blender to puree the soup until smooth, or carefully transfer to a blender in batches.
Return soup to pot over low heat and stir in heavy cream. Heat through but don't boil.
Taste and adjust seasoning as needed. Serve hot with extra basil leaves and a drizzle of cream if desired.