01 - Preheat the oven to 375°F. Grease a 9x13 inch baking dish with butter.
02 - Bring a large pot of salted water to a boil. Add sliced potatoes and cauliflower florets; cook for 5 minutes until just tender. Drain thoroughly and set aside.
03 - Melt 2 tablespoons butter in a medium saucepan over medium heat. Add chopped onion and minced garlic; cook until softened, about 3 minutes.
04 - Stir in 2 tablespoons flour and cook for 1 minute, stirring constantly to form a roux.
05 - Gradually whisk in 1 cup whole milk and 1 cup heavy cream. Simmer gently, whisking constantly, until sauce thickens, about 4 to 5 minutes.
06 - Remove from heat. Stir in Gruyère, ½ cup Parmesan, ground nutmeg, salt, and black pepper until cheese melts and sauce is smooth.
07 - In the prepared baking dish, layer half of the potatoes and cauliflower. Pour half of the cheese sauce over the vegetables. Repeat layering with remaining potatoes, cauliflower, and cheese sauce.
08 - Sprinkle the top evenly with remaining Parmesan cheese. Optionally, mix breadcrumbs with melted butter and evenly scatter on top for a crunchy crust.
09 - Bake for 40 to 45 minutes until the top is golden brown and sauce is bubbly. Remove from oven and let rest for 10 minutes before serving.