1. Pasta, milk, cheese: The simplest technique, which is basically layering cooked noodles and shredded cheese, adding milk, covering, and baking.
Cons: Uneven distribution of cheese and dried-out upper and outer surfaces. Often just plain milk will boil off before imbuing moisture to the pasta and cheese. One way to mitigate this is by beating an egg yolk into the milk, which helps the milk act as a binding agent and thickener.
2. Bechamel sauce: The most rigorous and refined way of making the milk a thickening/binding agent, as mentioned above, this uses the classic mother sauce made from butter, flour, and milk as the base for what is essentially homemade cheese sauce.
Pros: Very even distribution of cheesy liquid, ensuring consistent flavor, texture, and moistness throughout the dish. This can also be made as a one-pot dish if you are using an oven-proof saucepan to make the bechamel/cheese sauce.
Cons: Time-consuming and tricky to execute.
3. Cream cheese: So this is a little bit of a cheat, because instead of making a bechamel from scratch to act as a sauce, you utilize the emulsifier that's used in making cream cheese: xanthan gum, which is a natural product (bacterial secretion-sexy, I know). All it takes is a one-to-one ratio of cream cheese to milk, combined over heat, to form the basis of the cheese sauce.
Pros: An easy way to accomplish essentially the same result as a bechamel sauce, with a lot less work.
Cons: The cream cheese does add a bit of its own flavor, and while it's not unpleasant, it might cause interference if you're going for a very specific type of cheese flavor.
Cream Cheese Mac and CheeseYou can also use sour cream for this recipe, because whole-fat sour cream almost always contains an emulsifier like xantham gum (oddly, light sour cream generally does not). I also incorporate a couple of ingredients that contribute some punctuating flavors, sort of the perimeter around the huge middle note of salty/creamy cheesiness.
1 pound elbow macaroni, cooked and drained
8 ounces shredded cheese*
8 ounces cream cheese
8 ounces milk
1 tablespoon butter
1 teaspoon minced garlic
1/2 teaspoon cayenne pepper
a little bit of some stinky, sharp cheese**
salt and pepper to taste
Butter a 9-inch-by-9-inch casserole dish and add drained, cooled noodles. In a large saucepan over medium heat, add the butter, garlic, and cayenne, and cook for about 1 minute (the cooking will remove much of the cayenne's heat and will impart a vague smokiness). Add the milk and cream cheese, and heat until the latter has completely melted, stirring constantly, about 5 minutes. Add the cheeses and correct seasoning, then pour over noodles. Bake uncovered in a 400-degree oven, until the top has browned slightly, about 15 minutes. Allow to cool slightly before serving.
* I like sharp cheddar because of its strong, salty flavor, but if you prefer meltiness over sharpness, use mozzarella, Gruyere, or Emmental.
** As for the small amount of stinky cheese, anything blue is good for adding a tiny bit of background complexity, except for maybe gorgonzola, which has a tendency to overwhelm the overall aroma.