Preheat oven to 425°F (220°C). Line a baking sheet with parchment. Cut cauliflower into bite-sized florets.
Toss cauliflower with 2 tablespoons olive oil, 1/2 teaspoon salt, and 1/4 teaspoon pepper. Roast for 25-35 minutes, tossing once halfway, until tender and deeply golden.
Slice 1/4 inch off the top of the garlic head, drizzle with 1 teaspoon oil, and wrap in foil. Roast alongside cauliflower for 25-35 minutes until soft. Squeeze out the roasted cloves.
Heat remaining 1 tablespoon olive oil in a large pot over medium heat. Sauté onion and celery for 6-8 minutes until softened. Add thyme and cook 30 seconds until fragrant.
Add roasted cauliflower, roasted garlic, and broth to the pot. Bring to a gentle boil, then reduce heat and simmer uncovered for 10-15 minutes.
Remove from heat and cool slightly. Blend with an immersion blender directly in the pot or in batches in a countertop blender until completely smooth.
Return to low heat and stir in butter, lemon juice, and Parmesan or cheddar if using. Taste and adjust salt and pepper as needed. Thin with extra broth if desired.
Ladle into bowls and top with reserved roasted florets, fresh herbs, croutons, or a drizzle of olive oil. Serve immediately with crusty bread.