01 - Preheat oven to 400°F if finishing with a breadcrumb topping.
02 - Bring a large pot of 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 tbsp butter. Sprinkle in the flour and whisk continuously for 1 minute to form a smooth roux.
04 - Gradually pour in the warmed milk while whisking vigorously to prevent lumps. Continue cooking, stirring constantly, until the sauce thickens and coats the back of a spoon, about 5 minutes.
05 - Remove the saucepan from heat. Add the grated cheddar, Gruyère (if using), salt, 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.
07 - If using the topping, transfer the macaroni mixture to a greased baking dish. Combine the breadcrumbs, melted butter, and Parmesan cheese, then sprinkle evenly over the surface. Bake for 15–20 minutes until the top is golden brown and the edges are bubbling.
08 - Let rest for 2–3 minutes after removing from the oven. Serve hot, garnished with additional grated cheese or fresh herbs if desired.