01 - Preheat the oven to 400°F if finishing with a breadcrumb topping. Lightly grease a 9x13-inch baking dish and set aside.
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 2 tablespoons of butter. Sprinkle in the flour and whisk continuously for 1 minute to form a smooth roux and cook off the raw flour taste.
04 - Gradually pour in the warmed milk while whisking constantly to prevent lumps. Continue cooking and stirring over medium heat for about 5 minutes until the sauce thickens enough to coat the back of a spoon.
05 - Remove the saucepan from heat. Stir in the grated sharp cheddar and Gruyère (if using), along with the salt, black pepper, nutmeg, and Dijon mustard. Stir until all the cheese has melted and the sauce is velvety smooth.
06 - Gently fold the drained macaroni into the cheese sauce, tossing until every piece is evenly coated and the mixture is well combined.
07 - If using the topping, transfer the macaroni mixture to the prepared baking dish. Combine the breadcrumbs, melted butter, and grated Parmesan in a small bowl, then sprinkle evenly over the surface. Bake for 15 to 20 minutes until the top is golden brown and the edges are bubbling.
08 - Remove from the oven and let rest for 5 minutes before serving. Garnish with additional grated cheese or fresh herbs if desired.