Preheat the oven to 375°F (190°C). Grease a baking dish and set it aside.
Blanch the broccoli by bringing a pot of water to a boil. Cook the broccoli florets for 2-3 minutes until bright green and slightly tender. Drain and set aside.
Prepare the cheese sauce: In a saucepan over medium heat, melt the butter and whisk in the flour. Cook for 1-2 minutes until lightly golden.
Add the milk and cream: Slowly whisk in the milk and heavy cream, stirring continuously until the mixture thickens.
Melt the cheese: Stir in the cheddar and mozzarella cheese until fully melted and smooth. Season with garlic powder, onion powder, salt, and black pepper.
Combine the broccoli and cheese sauce: Add the drained broccoli to the cheese sauce, tossing to coat evenly.
Assemble the casserole: Transfer the mixture to the prepared baking dish, spreading it out evenly.
Prepare the topping: In a small bowl, mix breadcrumbs or crushed crackers with melted butter and Parmesan cheese. Sprinkle evenly over the casserole.
Bake uncovered for 20-25 minutes, or until the topping is golden brown and crispy.
Cool and serve: Remove from the oven and let cool for a few minutes before serving. Garnish with fresh parsley or extra cheese, if desired.