Heat the oven to 400°. On a baking sheet, combine the cherry tomatoes, 2 tablespoons of the olive oil, and the salt and pepper. Toss the ingredients to coat evenly and spread them in a single layer. Roast the tomatoes until they are shriveled with brown spots, about 35 to 45 minutes.
In a large pot (I used a dutch oven), heat the butter and the remaining tablespoon of oil over medium heat. Add the garlic and onion and sauté until softened, about 6 minutes. Add the canned tomatoes with their juice, the broth, the thyme, spinach, and the roasted tomatoes, including any liquid on the baking sheet. Bring the mixture to a boil, then reduce the heat and simmer, partially covered, for 40 minutes.
Using a food processor or blender, puree the soup until it's smooth. (I used a stick blender so it didn't have to leave the pot.) Return it to the pot and stir in the cream. Without letting the soup boil, warm it over medium heat, stirring often, until steaming. Add salt and pepper, if necessary.