In a large pot over medium heat, melt the butter. Add onion and cook, stirring occasionally, until softened, 8 minutes. Add cauliflower and cook until just beginning to brown, for 12 minutes.
Add broth and 1 cup water; bring to a boil over high. Reduce heat and simmer until cauliflower is very tender, 20 minutes. Allow to slightly cool.
In several batches, fill a blender (I use a VitaMix) halfway with mixture and puree until smooth (use caution when blending hot liquids).
Return pureed soup to the original pot, and add more broth or water if you want a thinner consistency.
Heat over medium until warmed through; add cheese and stir until melted. Season with salt and pepper. Serve sprinkled with cayenne.