Place the broccoli florets in a steamer basket. Add about an inch of water to a pot and bring to a boil over medium-high heat. Place the steamer basket with the broccoli into the pot. Cover and steam for 5 minutes. Uncover, drain broccoli into a colander and set aside.
Preheat the oven to 425 F and grease an 11 x 7-inch baking dish or you can use a 9-inch oven safe skillet to make this a one skillet meal.
Heat 2 Tablespoons of oil in a large skillet or oven safe skillet over medium-high heat. Add the leeks and shallots; sauté until softened, about 6 to 8 minutes (might take a little longer if you use onions instead of shallots.) Add the garlic and cook 1-2 minutes, until fragrant.
Add the white wine to the pan. Cook, stirring often until most of the liquid has evaporated, 2 to 3 minutes.
Sprinkle the flour into the pan and toss to coat until onions are well coated. Whisk in milk and bring to a simmer, whisking occasionally, until the mixture starts to thicken, about 4 to 5 minutes. Whisk in salt, black pepper and cayenne.
Stir in cheese and whisk until the cheese melts and the sauce is smooth, about 1 minute. Taste the sauce right now and adjust seasoning. Different cheeses have different salt contents. Add salt and other seasonings as needed. Remove from heat and carefully fold in cooked broccoli florets, tossing to coat. Transfer mixture to prepared baking dish or leave in oven-safe skillet.
Combine panko breadcrumbs, remaining 1 1⁄2 Tablespoon of oil, and paprika in a medium bowl. Toss the mixture with your hands, making sure all breadcrumbs are well coated. Scatter panko over the casserole and transfer to the oven. Bake uncovered for 25 - 30 minutes, until the topping is golden, and the sauce is bubbly.