In a large skillet over medium heat, melt thebutter together with the oil. Add the onions, and cook, stirring frequently,until browned, about 7 minutes.
Add the carrots, celery, and garlic, and cook, stirring, until the vegetables are softened and the flavors have melded, 8 to 10 minutes.
Add the canned tomatoes, tomato paste, broth,and salt. Bring to a boil, then reduce the heat and simmer for about 40 minutes.
Dilute the soup with a touch more liquid, if needed. I like to wait to do so until after simmering because as the soup cooks, the tomatoes release their own juices—and you definitely don’t want the soup to be too watery. Add the basil leaves.
Using a hand blender, blend the soup until smooth. Season to taste with salt and pepper.
To serve, ladle into warmed soup bowls or mugs, and top with a touch of shredded Parmesan cheese and a fresh basil leaf or two.