Bring a medium pot of water to a boil and fill a large bowl with ice water. Core the tomatoes and cut a shallow X into the skin on the bottom of each with a sharp knife. Boil the tomatoes just long enough for the skin to be easy to peel, about 20 seconds. Transfer to the ice bath to cool. Peel the tomatoes, quarter them lengthwise, and remove the seeds. Coarsely chop the flesh.
Melt the butter in a medium saucepan over medium heat. Add the onion and garlic and cook, stirring occasionally, until translucent and softened but not browned, about 5 minutes. Add the tomatoes, broth, sugar, basil, 3/4 teaspoon salt and a few grinds of pepper. Increase the heat to medium-high and bring to a boil. Reduce the heat slightly and simmer until the tomatoes start to break down, about 15 minutes. Remove the basil sprig and transfer the soup to a blender. Puree until very smooth (be careful when blending hot liquids). Add the cream and season with salt and pepper to taste.
Preheat the broiler on high with the heating element about 6 inches above the rack. Divide the soup among 4 small broiler-proof bowls. Place a slice of bread in each and top with the cheese. Broil until the cheese is melted, bubbling and lightly browned in spots. Garnish with a basil leaf and serve immediately.
When blending hot liquid, first let it cool for five minutes or so, then transfer it to a blender, filling only halfway. Put the lid on, leaving one corner open. Cover the lid with a kitchen towel to catch splatters, and pulse until smooth.