Sauté the Vegetables: Warm the olive oil in a large, heavy-bottomed pot or Dutch oven over medium heat. Once hot, add the chopped onion and diced carrots. Season with about a teaspoon of salt and some freshly ground black pepper. Cook gently, stirring occasionally, until the vegetables soften and become fragrant—this should take about 5 to 6 minutes.
Develop Flavor Base: Add the minced garlic, tomato paste, and crushed red pepper flakes if you like some heat. Continue cooking for 1 to 2 minutes, stirring frequently, until the tomato paste takes on a rich, slightly browned color and the garlic releases its aroma.
Combine the Core Ingredients: Stir in the fresh basil, thyme, drained roasted red peppers, crushed tomatoes, vegetable broth, and white wine if using. Bring the mixture to a boil, then reduce the heat to low to maintain a gentle simmer. Let it cook uncovered for 15 minutes, allowing the flavors to meld and the vegetables to become tender.
Blend Until Smooth: Use an immersion blender to puree the soup directly in the pot until it’s creamy and smooth. If you don’t have an immersion blender, carefully transfer the soup in batches to a blender, ensuring you don’t fill it more than two-thirds full and covering the lid opening with a towel to prevent splattering. Return the blended soup to the pot.
Add Creaminess and Final Seasoning: Pour in your choice of heavy cream, dairy milk, or plant-based milk. Heat gently over medium-low, stirring occasionally until the soup is warmed through. Taste and adjust the seasoning with additional salt and black pepper as needed.
Serve: Ladle the soup into bowls and garnish with a sprinkle of freshly cracked black pepper, extra crushed red pepper flakes, and fresh basil leaves if desired. Pair it with crusty bread for a satisfying meal.