Bring a large pot of salted water to a boil. Add the elbow macaroni and cook according to package instructions until al dente. Drain the pasta in a colander and set aside.
In a medium saucepan, melt the butter over medium heat. Once melted, whisk in the flour and cook for about 1 minute until bubbly and golden.
Gradually whisk in the milk, ensuring there are no lumps. Continue stirring until the mixture thickens and bubbles, about 3-4 minutes.
Reduce the heat to low, then add the shredded cheddar cheese, garlic powder, onion powder, salt, and pepper. Stir until the cheese is completely melted and the sauce is smooth.
Add the drained pasta to the cheese sauce, stirring until well combined. If using, mix in the grated Parmesan cheese for extra flavor.
Serve the cheesy noodles in bowls or on plates, and enjoy!