Preheat the oven to 350°F (175°C).
In a large pot, bring salted water to a boil. Add the cauliflower florets and cook for about 5-7 minutes until just tender. Drain and set aside in a colander.
In a mixing bowl, melt the butter over medium heat. Add the flour and whisk until combined to create a roux. Cook for 1-2 minutes until it is a light golden color.
Slowly pour in the milk, whisking constantly to avoid lumps. Continue cooking and stirring until the sauce thickens, about 5 minutes.
Stir in the cheddar cheese and mozzarella cheese until melted and smooth. Add garlic powder, onion powder, salt, and pepper to taste. If desired, add paprika for extra flavor.
Fold the cooked cauliflower into the cheese sauce until evenly coated.
Transfer the cheesy cauliflower mixture to a greased baking dish. If using, sprinkle breadcrumbs on top for added crunch.
Bake in the preheated oven for about 20 minutes, or until the top is golden and bubbly.
Remove from the oven and let it rest for a few minutes before serving.