
Add butter and onion to a large pot. Sauté on medium-low for about 5-7 minutes until lightly browned. Stirring occasionally to keep from burning. Add finely chopped garlic and sauté with the onions for 1 minute.
Next, add fresh chopped tomatoes or canned diced or crushed tomatoes, broth, tomato paste and fresh chopped basil. Simmer on medium low for about 20 minutes.
After 20 minutes, puree the soup using an immersion blender or a regular blender, being very careful since the soup is hot.
Add salt, pepper, cream and optional sugar and stir together over low heat. Keep warm until you are ready to serve.
While soup is cooking begin preparing grilled cheese sandwiches.
Butter one side of each slice of bread. The buttered sides will be on the outside of the sandwich. Cut slices of cheese and fill the inside of each sandwich. To make it extra cheesy, add two layers of cheese. This is also when you can add any other fillings you might enjoy (like bacon, fig jam, tomato, etc.)
Then place the sandwich on a hot skillet and toast on each side until browned to your liking. Keep an eye on the temperature of your pan and the underside of your sandwich so it doesn't get burned. If you cheese isn't melting quickly enough place a lid on your skillet to trap the heat inside and help the cheese to melt.
Serve your hot grilled cheese right away with you tomato soup.