Melt the butter in a large dutch oven over medium heat. Add the onion, carrots, and thyme, and cook about 10 minutes. Stir in the flour and cook until golden, about 2 minutes, then gradually whisk in the broth. Add the cauliflower and bring to a boil. Cover, and cook over medium heat for 10 minutes, until the cauliflower is tender.
Transfer the soup to a blender and purée until smooth. If you don't have a blender, use a hand blender. It will work beautifully. Return the soup to the pot if you pureed it in your blender. If needed add 1-2 cups water, then the broccoli, bay leaves, paprika, cayenne, and a large pinch each of salt and pepper. Bring to a simmer over low heat and cook, uncovered, until the broccoli is tender, about 10 minutes. If you think it's cooking down too much, add a lid and set it ajar on the pot.
Remove the bay leaves and blend the soup in batches until the broccoli is mostly pureed leaving small chunks.
Return the soup to the stove and set over low heat. Stir in the heavy cream or the half and half . Add the cheese and cook until melted and creamy. Taste, and add salt and pepper as needed. If the soup is thick, add broth to thin. Ladle into bowls and top with a little extra cheddar and more fresh thyme.