1. Preheat oven to 350ºF. Arrange tomatoes in a single layer, cut side up, on a large baking sheet. Scatter onions, garlic and thyme around tomatoes. Sprinkle with sugar, season with salt and pepper and drizzle with oil. Roast until vegetables are soft and slightly caramelized, 1 1/4 to 1 1/2 hours. Discard thyme sprigs.
2. Warm broth in a large pan over medium heat. Add tomato mixture, scraping up browned bits from sheet. Bring to a boil over high heat. Reduce heat to medium-low, cover and simmer for 20 minutes.
3. Remove soup from heat; let cool slightly. Working in batches, puree soup in a blender. Strain soup through a sieve into clean pan, pressing on solids to extract liquid. Discard all solids.
4. Stir in half-and-half and reheat soup to a simmer, stirring often (do not boil). Season with salt and pepper, ladle into bowls and sprinkle with basil, if desired.