Warm the base: Heat the olive oil in a medium pot over medium heat.
Add the onion and a pinch of salt. Cook, stirring often, until soft and translucent, about 6–8 minutes. Add the garlic and cook 30 seconds, just until fragrant.
Build flavor: Stir in the tomato paste and cook 1 minute to caramelize it slightly.
Add the red pepper flakes if using.
Add tomatoes and broth: Pour in the canned tomatoes with their juices and the broth. If using whole tomatoes, crush them gently with a spoon.
Season and simmer: Add 1 teaspoon salt, black pepper, and 1 teaspoon sugar. Bring to a gentle simmer.
Cook uncovered for 20–25 minutes, stirring occasionally, until slightly thickened and the flavors have mellowed.
Blend: Turn off the heat. Use an immersion blender to puree until smooth. For extra silky texture, blend in a countertop blender in batches, venting the lid.
If you like it chunky, blend only half.
Finish and balance: Return to low heat. Stir in the vinegar and taste. Add more salt, pepper, or sugar as needed.
Swirl in the cream, then add torn basil. Warm through for 1–2 minutes without boiling.
Serve: Ladle into bowls. Drizzle with olive oil, add a few basil ribbons, or top with a dollop of yogurt.
Serve with warm bread or a grilled cheese.