Remove the butternut rind and seeds. Cut the butternut flesh into 1/2-inch pieces. In a deep pot, place 6 quarts of water over medium-high heat. Add 2 tablespoons of salt and the butternut pieces. Bring to the water to a boil and boil until the butternut is completely tender, about 15-20 minutes.
When the butternut is tender, drain the pot and pass the butternut flesh through a food mill. Place the butternut in a small pot over low heat. Add the butter to the pureed butternut and, using a wooden spoon, stir to form a homogenous blend, much like mashed potatoes. Salt and pepper to taste and continue stirring until the mixture is on the dry side.
Add the flour to the milk and stir to dissolve some of the flour. Add the milk mixture to the butternut and continue mixing until the butternut is somewhat stiff and difficult to mix. Remove the butternut from the heat and allow to come to room temperature.
Preheat the oven to 300 degrees F.
When the butternut is at room temperature, add the egg yolks and the cheese, stirring until the mixture is well combined. Spoon the butternut mixture into a round, lightly-buttered 10-inch casserole dish. Bake until lightly browned, about 40 minutes. Remove from the oven and serve immediately.
Recipe courtesy of Mario Batali