Preheat oven to 400 degrees.
If using fresh broccoli, you should blanch it first. If using frozen broccoli you can skip this step and drain your thawed broccoli completely. Fill a large pot with enough water to submerge the broccoli. Place the pot on the stove to boil. Once the water reaches boiling, add the broccoli. Cook for 2-3 minutes until the broccoli is bright green and soft. As the broccoli cooks, fill a large bowl (large enough to fit the broccoli) with ice and water.
Strain the broccoli from the pot and add it to bowl of ice water. This will stop the broccoli from cooking and ensure it isn't mushy. Once cool, drain the broccoli and dry it out using paper towels or towels.
Heat a pan on medium heat and add the butter. (I use the same pot, a Dutch oven, I used for the broccoli).
When melted, add the garlic and cook for a couple of minutes until fragrant.
Add in the cream cheese, whipping cream, and ½ cup grated cheddar cheese. Stir. Add in the onion powder, salt, and pepper to taste. Taste the sauce repeatedly and adjust the flavor to taste as needed.
Stir continuously until the cheese has melted.
Remove the pot from the heat and set aside.
Arrange the drained broccoli throughout a 9×13 baking dish. Spoon the cheese sauce throughout. The sauce will be thick, likely too thick to drizzle.
Sprinkle the remaining 1 cup of grated cheddar, Parmesan Reggiano, and breadcrumbs on top..
Spray the top of the au gratin with cooking oil spray.
Bake (uncovered) for 20-25 minutes until golden brown. If you like a crisp top, a couple of minutes before the dish has finished baking, turn on the Broil function on the oven. Broil for 1-3 minutes until the top has crisped.
Cool before serving.