In a large pot, heat olive oil over medium-high heat. Add the diced onion and minced garlic, sautéing for about 3 minutes until the onion turns translucent and aromatic.
Once the tomatoes are roasted, remove the tray from the oven. Separate the garlic cloves from their skins, squeezing the roasted flesh into the pot. Transfer all roasted tomatoes along with their flavorful juices into the pot. Pour in the vegetable stock and stir well to combine.
Using a stick blender, puree the mixture until smooth and creamy. If using a regular blender, work in batches and return the soup to the pot afterward. Bring the soup to a gentle simmer, then reduce the heat to medium and let it cook for 10 minutes to develop a deeper flavor.
Stir in the cream (or butter) for added richness, and season to taste with salt, pepper, and a touch of sugar if the tomatoes are too acidic. The result should be velvety and balanced, with a smoky sweetness that lingers.
Ladle the soup into bowls, drizzle a swirl of cream on top, and scatter with fresh basil leaves. Serve immediately with a side of golden, crispy grilled cheese for the ultimate comfort meal.