Preheat oven to 400˚F.
Transfer tomatoes to a baking sheet and drizzle with 2 tablespoons olive oil.
Season the tomatoes with salt and pepper and toss to combine.
Spread the tomatoes in one layer and roast for 35 minutes, or until soft and tender.
Meanwhile, heat remaining olive oil in a 5-quart Dutch oven set over medium heat.
Add diced onions to the hot oil and cook for 5 minutes, stirring frequently.
Stir in garlic and cook for 2 minutes.
Stir in the paprika and basil leaves; continue to cook for 1 minute.
Remove roasted tomatoes from the oven and add them to the Dutch oven. Stir well.
Add in vegetable broth; increase heat to high and bring mixture to a boil.
Lower heat to a steady simmer and cook uncovered for 30 minutes.
Using an immersion blender, blend the soup until completely smooth.
Blend in the heavy cream, if using.
Taste soup for salt and pepper and adjust accordingly.
Remove from heat and let stand few minutes.
Ladle into bowls and serve.