Preheat your oven to 425 degrees. Cut your tomatoes in half and place on a parchment paper lined baking sheet with the cut side down. Sprinkle with the garlic cloves. Drizzle with olive oil & season with salt & pepper.
Bake for about 45-60 minutes, depending on the size of your tomatoes, until the garlic and tomatoes are browned. I like to roast mine until the tomatoes blacken a little.
Remove from the oven and let cool. Remove the skins from the tomatoes if desired.
Meanwhile, in a large skillet - melt the butter. Add the onion and season to taste with salt and pepper. Sauté the sliced onion on medium/low until caramelized. Let cool.
In a blender or food processor, add the cooled tomatoes, garlic, and onion. Add the butter that is remaining in the pan with the onion too! Puree until smooth.
Pour the mixture into a large pot. Add the stock and bay leaves. Bring to a boil, then reduce heat and simmer for 20-30 minutes. Remove the bay leaves and discard.
Garnish with a splash of heavy cream and chopped fresh basil, if desired. Season with more salt and pepper if desired.