Boil water in a large pot and add salt.
Add pasta and cook according to package instructions until al dente.
In a separate pan, melt butter over medium heat.
Add flour and whisk for 1-2 minutes to create a roux.
Slowly pour in milk, whisking continuously to avoid lumps.
Cook the sauce until it thickens, about 5 minutes.
Add grated Parmesan cheese, salt, pepper, and garlic powder, stirring well.
Drain the pasta and add it to the sauce, mixing until well coated.
If using, add cooked vegetables and stir gently.
Serve hot, garnished with fresh basil leaves and extra cheese if desired.