Heat the olive oil in a large pot over medium heat. Add the diced onion and minced garlic, then cook for 5 minutes until the onion softens.
Pour in the crushed tomatoes and vegetable broth. Bring the mixture to a simmer and cook for 10 minutes.
Remove the pot from the heat. Stir in the chopped basil and heavy cream. Season with salt and black pepper. Use an immersion blender to puree the soup until smooth, or transfer it carefully to a blender in batches.
While the soup simmers, prepare the sandwiches. Spread butter on one side of each bread slice. Place cheese between two slices with the buttered sides facing out.
Heat a skillet over medium heat. Cook each sandwich for 3 to 4 minutes per side until the bread turns golden and the cheese melts.
Ladle the soup into bowls and serve with the grilled cheese sandwiches on the side.