Fill a large pot ⅔ full with hot water. Add two teaspoons of salt to the water, cover the pot, and put the heat on high to let it come to a boil.
While the water is heating, rinse the broccoli. Cut off and discard the thick stems, leaving the florets plus 2-3 inches of stems attached. Slice the florets in half the long way to thin out the stems a bit.
Peel and chop ¼ a white onion and measure out ½ cup. Peel the garlic and chop it finely.
When the water is boiling, add the broccoli to the pot and give it a stir. Lower the heat to medium high and let the broccoli cook uncovered for 4 minutes, or until just tender.
While the broccoli is cooking, prepare the cheeses. Shred the Fontina in a food processor or blender, or use a box grater. Grate the Parmesan the same way.
When the broccoli is just tender, drain it in a colander in the sink. Rinse the broccoli with cold water to stop the cooking.
Preheat the oven to 375 degrees F. To make the cheese sauce, in a medium pot, melt 2 Tablespoons of butter over medium-high heat. Add the chopped onions and garlic and stir a bit. Let them cook for 3 minutes, or until the onions are tender. (If you are making a bigger batch of the base recipe, it might take longer for the onions to become tender.)
Add the flour and whisk to combine. Cook the flour mixture for a minute.
Add the milk to the pot, whisking constantly. Cook over medium-high heat, whisking constantly, for 5 minutes, or until it starts to thicken. (This will take longer if you are making a larger quantity of this recipe. Keep stirring until you have a thickened sauce.)
Turn off the heat and stir in the Fontina until it is blended smoothly. Stir in the salt and pepper.
In a small bowl, combine the Parmesan with the bread crumbs. (If you need to make bread crumbs, you can toast a slice of bread on medium high and then add it in pieces to your food processor or blender. Pulse the toast until it becomes crumbs.)
To assemble the gratin, ladle some cheese sauce into the bottom of a 1-½ quart baking pan until the bottom is covered with sauce. Pat the broccoli dry with paper towels and add all of the broccoli to the baking pan in an even layer. Pour the rest of the cheese sauce all over the broccoli. Sprinkle on the bread crumb mixture evenly.
Melt 2 tablespoons of butter in a microwavable bowl in the microwave or in a small pan on the stove. Drizzle the melted butter over the broccoli casserole.
Bake the broccoli gratin for 20-25 minutes, uncovered, until it's lightly browned. Serve with red pepper flakes at the table.
Store leftovers in the refrigerator for up to four days.
Notes
Broccoli: I always use fresh broccoli here and suspect frozen broccoli florets would turn out a bit soggy. However, for convenience, you can thaw frozen broccoli florets in the microwave and then cook them for a minute or so in the microwave until just tender. Dry them well before adding them to the casserole.Milk: Whole milk will produce a richer result, but 2% milk works great if you don't need to double or triple this recipe. When I double this recipe, I bake it in a 9x13 or 9x11 pan. If you are making double or more of this recipe, you will need extra time to get the bechamel sauce to thicken, and whole milk will thicken faster than 2%.See the article that goes with this recipe for more tips and substitutions.