Heat olive oil in a large pot over medium heat. Add chopped onion and cook for 4–5 minutes until soft.
Add garlic and cook for 30 seconds until fragrant.
Stir in crushed tomatoes, broth, salt, black pepper, and sugar if using.
Reduce heat to low and simmer uncovered for 20–25 minutes, stirring occasionally.
Blend soup until smooth using an immersion blender or blender (in batches).
Stir in heavy cream and gently warm for 5 minutes. Do not boil.
Butter one side of each bread slice and place cheese between slices, buttered sides out.
Heat a skillet over medium heat and cook sandwiches for 3–4 minutes per side until golden and cheese is melted.
Serve hot tomato soup with grilled cheese sandwiches.