Preheat oven to 425°. Add tomatoes, into a 13×9″ baking dish; scatter onions and thyme over and drizzle with 1/4 cup oil; season with salt and pepper. Cut of end of garlic to reveal cloves, drizzle with olive oil and wrap in tinfoil to roast. Tuck into the pan with the tomatoes and onions. Roast, tossing halfway through, until tomatoes are jammy, 35–40 minutes.
Heat 2 Tbsp. oil in a large heavy pot over medium-high. Add tomato paste and season with salt and pepper. Cook briefly, just until tomato paste turns brick red, a few minutes. Add roasted tomato mixture and broth and bring to a boil. Reduce heat and simmer, stirring occasionally, until flavors meld, 15–20 minutes. Let cool slightly.
Meanwhile, toss with bread and remaining 2 Tbsp. oil on a clean rimmed baking sheet; season with salt and pepper. Toast, tossing once, until croutons are golden brown, 6–8 minutes. (Instead of croutons, You can also make a grilled cheese)
Working in batches, purée tomato mixture in a blender until very smooth (make sure lid is slightly ajar to let steam escape; cover with a towel). Transfer to a large bowl or pitcher.
Pour soup back into pot. Taste and season with salt and pepper; keep warm.
Serve soup topped with a drizzle of heavy cream (optional) and top with croutons.
Do ahead: Tomato soup and croutons can be made 4 days ahead. Let soup cool; cover and chill. Store croutons airtight at room temperature.