Preheat the oven to 400F. Cut or break the cauliflower into large chunks, then break one or two chunks into bite-sized florets (about a cup total). Spread the florets on a baking sheet and drizzle with olive oil and sprinkle with salt. Roast the cauliflower for 20-25 minutes until dark at the edges and soft.
Meanwhile, make the soup. In a soup pot, add the bacon pieces and turn the heat to medium-high. Cook the bacon until crispy, stirring as you go, for 7 minutes or so until the bacon is crisp. Remove it to a paper towel to drain, leaving the drippings in the pot.
Reduce the heat on the pot to medium, and add the onion. Stir for one minute, scraping the bottom of the soup pot, then add the garlic and stir for one minute more. Add the stock and stir for another minute, then add the remaining cauliflower chunks and the thyme.
Cover the pot and reduce the heat to medium-low. Cook the soup for 30 minutes or as long as necessary for the cauliflower to be very well cooked, almost falling apart.
When the cauliflower is cooked through in the soup pot, transfer the entire mixture to a blender. Blend until very smooth, then return the soup to the pot. Stir in half of the cheese and all of the cream, then taste the soup and add salt and pepper to your preference.
Serve the soup topped with bacon, the roasted cauliflower, and the rest of the grated cheese. Sprinkle with herbs if you'd like and serve with bread for dipping.
Vegetarian if you omit the bacon and use vegetable stock.