Cook the Pasta: Bring a large pot of salted water to a boil. Add the macaroni and cook according to the package instructions until al dente. Drain and set aside.
Make the Cheese Sauce: In a medium saucepan, melt the butter over medium heat. Once melted, whisk in the flour to create a roux. Cook for 1-2 minutes to eliminate the raw flour taste. Slowly pour in the milk while whisking continuously to prevent lumps from forming. Continue to cook until the sauce thickens and coats the back of a spoon.
Add the Cheese: Reduce the heat to low and stir in the shredded cheddar and mozzarella cheeses until they are completely melted and the sauce is smooth. Season with Dijon mustard (if using), garlic powder, salt, and pepper to taste.
Combine Pasta and Sauce: Add the cooked pasta to the cheese sauce and stir gently to coat all the pasta with the creamy sauce.
Optional Baked Version: If you prefer baked mac and cheese, preheat the oven to 350°F (175°C). Transfer the mac and cheese to a greased baking dish. In a small bowl, melt butter and mix with breadcrumbs. Sprinkle the breadcrumb mixture over the mac and cheese, then bake for 20-25 minutes, or until golden brown and bubbly. You can also top it with grated Parmesan for extra flavor.
Serve and Enjoy: Once cooked, serve your mac and cheese hot. Garnish with fresh herbs or extra cheese if desired.