In a large pan, melt the butter in the olive oil over medium heat. Add the basil, onions and garlic and saute until the onions are translucent.
Add the tomatoes to the onions and garlic and stir, breaking up the tomatoes a bit. Simmer for 10-15 minutes, until the tomatoes soften. Add the chicken stock or broth and simmer 30 minutes.
Remove the soup from heat and allow to cool enough to safely puree without getting burned. Puree the soup with an immersion blender or a standard blender until it is smooth. If you used a blender, return the soup to the pot.
Stir in the heavy cream. Add salt and pepper to taste. Return the soup to low heat until it’s hot enough to serve.