Heat olive oil in a large pot over medium heat. Add diced onions and cook until translucent, about 5 minutes.
Add minced garlic and cook for another minute until fragrant.
Pour in the tomatoes with their juice, broth, and basil. Bring to a simmer.
Reduce heat and let simmer for 20 minutes, stirring occasionally.
Using an immersion blender (or transfer to a regular blender), blend until smooth.
Stir in heavy cream and season with salt and pepper to taste.
Mix softened butter with garlic powder if using.
Butter one side of each bread slice with the seasoned butter.
Layer both kinds of cheese between two slices of bread (butter side out).
Heat a large skillet or griddle over medium heat.
Cook sandwiches for 3-4 minutes per side, or until golden brown and cheese is melted.