Combine cauliflower, olive oil, curry powder, and mustard seeds in a baking pan; toss to coat cauliflower.
Bake in the preheated oven until cauliflower begins to brown, 35 to 40 minutes.
Heat 2 tablespoons butter in a saucepan over medium heat; cook and stir onion until softened, 5 to 10 minutes. Add chicken broth and cauliflower to onion; bring to a boil. Reduce heat to low and simmer.
Combine 3 tablespoons butter and flour in a small saucepan over medium-low heat; cook and stir until roux is thickened and slightly browned, about 5 minutes. Add milk to roux and continue cooking and stirring until thickened, 5 to 10 minutes. Stir roux into soup until smooth; season with salt and pepper.