Melt butter in a large pot over medium; sauté onion 5-6 minutes until soft and translucent.
Add garlic; cook 1 minute until fragrant, stirring constantly to prevent burning.
Add tomato paste, oregano, and optional pepper flakes; cook 2 minutes to deepen flavor.
Add tomatoes with juices, broth, and sugar; boil, reduce heat, and simmer 15 minutes.
Off heat, add fresh basil; puree with an immersion blender or carefully transfer to a blender in batches.
Return to low heat; stir in cream and season with salt and pepper. Heat through 2-3 minutes without boiling; serve warm with fresh basil if desired.