Preheat the oven to 350°F (176°C). Lightly butter a gratin or 8- or 9-inch baking dish.
Trim and discard the thick stalks from the broccoli. Cut each head in half lengthwise.
Place the broccoli in a steamer rack set over boiling water, cover, and steam until easily pierced with a fork, 7 to 12 minutes or so, depending on the size. Drain and rinse the broccoli under cold running water, then coarsely chop it. Drain it again, then transfer it to a bowl.
Meanwhile, in a skillet over medium heat, melt 1/2 to 1 tablespoon of the butter. Add the bread crumbs and cook, stirring, until golden, 3 to 5 minutes. Remove from the heat, transfer to a plate, and set aside.
In a saucepan over medium-high heat, melt 2 tablespoons of the butter. When the butter has melted, remove the pan from the heat and whisk in the flour until smooth.
Return the pan to low heat and slowly pour in 1/2 cup of the milk, whisking constantly. Reduce the heat to low and simmer, stirring occasionally, until thickened, 5 to 7 minutes.
Slowly whisk in another 1/2 cup of milk. Add the salt, black pepper, and cayenne pepper. Continue to simmer, stirring occasionally, until the mixture has thickened again, about 5 minutes.
Whisk in the remaining 1/2 cup milk and simmer until thick enough to coat the back of a spoon, about 5 minutes longer. Stir in the blue cheese and cook, stirring, just until melted, about 2 minutes. Remove from the heat.
Pour the sauce over the broccoli and turn gently to mix. Spoon the mixture into the prepared gratin dish, smooth the surface, and top with the buttered bread crumbs. Cut the remaining butter into bits and dot the top.
Bake until bubbling around the edges and golden on top, about 20 minutes. Serve hot.