3 lbs. fresh spinach
3½ tbsp. unsalted butter, divided
1½ tbsp. flour
Salt and pepper
1 cup stock (milk, broth, or cream)
¾ cup grated cheese, divided (Parmesan, Romano, Asiago, Gruyere, etc.)
2 tbsp. dry breadcrumbs (I use panko)
Stem and wash the spinach, draining it but letting drops of water still cling to the leaves. Place the spinach in a large pot covered with a lid over high heat. Cook, stirring occasionally, until wilted (2-4 minutes for baby spinach, 4-6 for regular spinach). Transfer the spinach to a colander, fill the pot with cold water, and immediately return the spinach to the pot with the cold water to stop the cooking. Drain again. Working with a handful at a time, squeeze the spinach to extract as much excess water as possible. Coarsely chop the spinach. (You should have about 3 cups of chopped spinach.)
Wipe out the pot and then melt 2 tablespoons of the butter over medium-high heat. Stir in the chopped spinach. Cook, stirring frequently, until all of the moisture has been boiled off (when the spinach starts to stick to the pan).
Reduce the heat to medium and sprinkle the flour over the spinach. Cook, stirring frequently, for about 2 minutes. Stir in about 2/3 of the cooking liquid a small amount at a time, scraping the bottom of the pan as you go. When the liquid has been added, stir for another minute or two. If needed, add in the remaining liquid. Season with salt and pepper to taste.
Preheat the oven to 375˚ F. Mix ½ cup of the shredded cheese into the spinach mixture and then spread the mixture into a lightly greased baking dish. Toss the remaining ¼ cup of cheese with the bread crumbs and sprinkle the mixture evenly over the top. Melt the remaining 1½ tablespoons of butter and drizzle over the top. Bake until lightly browned and heated through, about 30 minutes.