This is the BEST tomato soup recipe that you can make from scratch with canned or fresh tomatoes. You have full control over the thickness of this soup and it's easy to make creamy if desired.
Take out the cream to allow it to come down to room temperature while the soup cooks.
Melt the butter in a large pot over medium heat. Add the onions and carrots and stir to coat in the butter. Reduce to medium-low, cover and cook until the onions begin to caramelize, about 25 minutes. Lift the lid and stir every few minutes during cooking and reduce heat to low if vegetables begin to cook too rapidly.
Add the garlic, Italian seasonings, basil, mustard powder, and tomato paste. Stir to combine and cook for 2 minutes over medium-low heat.
Add the wine and increase heat to medium. Simmer until the liquid is reduced by half, 3-4 minutes. Use a silicone spatula to stir it as it cooks.
Add the diced tomatoes and chicken broth and remove from heat. Use an immersion blender to blend until smooth, or carefully transfer to a blender.
Return to the stove and bring to a gentle boil. Let it simmer and reduce for 30 minutes, uncovered. It will thicken and the flavors will concentrate more. Stir occasionally as it simmers.
Turn heat off. Gradually stir in the cream and garnish with Parmesan and red pepper flakes if desired. Serve!
Pinot Grigio or Chardonnay are my preferred wine choices to use in this recipe. The wine adds a really nice flavor element to this soup but if you don't cook with wine, you can use chicken broth instead.
Add the rind from a block of Parmesan, Romano, or Asiago cheese during the simmering process for an additional flavor boost!
The cream is also optional but is another great offset to the tomatoes for just the right balance.
Dijon mustard can be used if you don't have mustard powder. You can't taste it outright, but it helps enhance the other flavors.
If you're low on time, you don't have to fully caramelize the onions and the carrots, but doing so really adds something extra!
If you prefer chunks of tomato in your soup, add just the chicken broth at first and blend until smooth. Then add the tomatoes, and blend until your desired consistency is reached.