01 - Preheat oven to 400°F if preparing the breadcrumb topping. Skip this step if serving directly from the stovetop.
02 - Bring a large pot of generously salted water to a rolling boil. Add the elbow macaroni and cook until just al dente according to package directions. Drain thoroughly and set aside.
03 - In a large saucepan over medium heat, melt the butter. Whisk in the flour and cook for 1 minute, stirring constantly to form a smooth roux.
04 - Gradually whisk the warm milk into the roux, ensuring no lumps form. Continue cooking and stirring until the sauce thickens and coats the back of a spoon, about 5 minutes.
05 - Remove the pan from heat. Stir in the grated cheddar, Gruyère (if using), salt, pepper, nutmeg, and Dijon mustard until the cheese is fully melted and the sauce is velvety smooth.
06 - Fold the cooked macaroni into the cheese sauce, tossing gently until every noodle is evenly coated.
07 - Transfer the macaroni and cheese to a baking dish. Combine the breadcrumbs, melted butter, and Parmesan; sprinkle evenly over the surface. Bake for 15–20 minutes until the topping is golden and the edges are bubbly.
08 - Serve immediately while hot. Garnish with extra shredded cheese or fresh herbs if desired.