01 -
In a large pot over medium heat, melt the butter. Add chopped onion and cook until soft and translucent, about 5 minutes.
02 -
Stir in minced garlic and cook for 1 minute until fragrant.
03 -
Sprinkle flour over onion and garlic mixture, stirring constantly to form a roux. Cook for 2 minutes to eliminate raw flour taste.
04 -
Gradually whisk in chicken or vegetable broth, ensuring a smooth consistency with no lumps.
05 -
Stir in crushed tomatoes, sugar, salt, pepper, and smoked paprika if using. Bring to a simmer and cook uncovered for 20 minutes, stirring occasionally.
06 -
Remove from heat and puree the soup with an immersion blender until smooth, or carefully blend in batches using a countertop blender.
07 -
Return the soup to low heat. Stir in half-and-half or cream and warm gently without boiling. Adjust seasoning as needed.
08 -
Ladle into bowls and garnish with fresh basil leaves or a swirl of cream. Serve hot.