Chop the onion, mince the garlic, and tear or slice the basil leaves.
Heat olive oil and butter (if using) in a large pot over medium heat.
Add the chopped onion and cook until soft and translucent.
Stir in the garlic and cook briefly until fragrant.
Add canned tomatoes, broth, salt, pepper, sugar (if using), and optional herbs.
Bring to a gentle boil, then reduce heat and simmer for 15–25 minutes.
Add fresh basil leaves to the pot.
Blend the soup using an immersion blender until smooth.
Stir in the heavy cream and adjust seasoning as needed.
Serve warm.