Preheat oven to 425˚F.
Line a large baking sheet with foil and set aside. You can also use 2 smaller baking sheets.
In a large mixing bowl combine halved tomatoes, garlic, onions, olive oil, salt and pepper; toss to coat.
Spread tomato mixture on prepared baking sheet.
Roast for 20 to 25 minutes, or until tender, stirring couple of times during the process.
Remove from oven and transfer roasted vegetables to a soup pot.
Stir in basil leaves and add in vegetable broth; blend with an immersion blender until smooth. OR blend in small batches in a Blender.
Stir or blend in heavy cream, if using; taste for seasonings and adjust accordingly.
Ladle into soup bowls and garnish with parmesan cheese and slices of basil.