Preheat the oven to 375F and line a rimmed baking sheet with parchment paper. Place the tomatoes, onion and garlic cloves on the prepared baking sheet. Season salt, pepper and red pepper flakes (if using) and toss with 2 tbsps of olive oil—place in the oven and roast for 1 hour. IF USING CANNED TOMATOES – remove the tomatoes from the can and reserve the liquid. Place the whole tomatoes on the prepared baking sheet with the onions and garlic cloves and continue the same way.
Heat 1 tbsp of oil on medium in a dutch oven or soup pot. Add the roasted tomatoes, onions and garlic to the pot. Add the basil and 3 cups of vegetable broth. If using canned tomatoes, add the reserved juice in the cans. Simmer for 5 minutes and remove from the heat.
Using an immersion blender, blend the soup to your desired consistency. Return the pot to medium heat and bring to a simmer for 10 to 15 minutes or until the soup reduces slightly. If the soup is too thick, add more broth or water until you reach the desired consistency. If you're using cream, add it now.
Ladle the soup into the bowls. Top with parsley, parmesan cheese or croutons. Serve hot with a toasty grilled cheese. Enjoy!