In a large pot, heat butter and oil over medium-high heat, then add onion, garlic, and carrots. Stir and cook for 5 or 6 minutes.
Add tomato paste and stir it in, cooking for another 3 minutes.
Add canned tomatoes with their juice and broth. Stir together and bring to a boil, then reduce the heat, cover the pot, and simmer for 30 to 45 minutes, longer if you have time.
Use an immersion blender to puree or regular blender if you do not have an immersion, still leaving some texture to the tomatoes.
Add cream, salt, pepper, parmesan cheese, and basil, and simmer for another 30 minutes or longer if you like.