Heat the olive oil and butter in a large pot over medium heat. When the butter is melted and starts to foam add the onions and cook for 3-4 minutes, stirring frequently.
Next add the garlic, black pepper and tomato paste to the pot. Cook the mixture for 1-2 minutes, stirring frequently.
Carefully, add the white wine to the pot and cook for about 2-3 minutes until most of the liquid has evaporated. Stir frequently.
Add the chopped tomatoes and chicken broth to the pot and raise the heat to high to bring the soup to a boil (it will take about 4-5 minutes). As soon as it starts boiling, lower the heat to medium-low, cover the pot and cook for 25 minutes, stirring occasionally. Keep the soup at a simmer, lower or raise the heat as needed.
Remove the pot from the heat and add the shredded basil.
Let the soup cool for just a few minutes, then process the soup in the pot with an immersion blender. If you don’t have an immersion blender, use a blender (see notes).
Return the pot to low heat, stir in the half and half and heat until warmed through. Do not let the soup come to a boil.
Taste the creamy tomato soup and add salt, if needed. As a reference, we added 1 teaspoon to ours.
Garnish with basil leaves, if desired.