This is from Martha Stewart, so be forewarned...
6 tablespoons unsalted butter, plus more for dish
5½ cups milk
½ cup all-purpose flour
2 teaspoons kosher salt
¼ teaspoon freshly ground black pepper
¼ teaspoon cayenne pepper
4½ cups (about 18 ounces) grated sharp white cheddar
2 cups (about 8 ounces) grated Gruyere or 1¼ cups (about 5 ounces) grated Pecorino Romano
1 pound elbow macaroni
You can easily divide this recipe in half; use a 1½-quart casserole dish if you do. Serves 12.
Heat the oven to 375°. Butter a 3-quart casserole dish; set aside. Melt 6 tablespoons butter in a high-sided skillet over medium heat. When butter bubbles, add flour. Cook, stirring, for 1 minute.
Slowly pour milk into flour-butter mixture while whisking. Continue cooking, whisking constantly, until the mixture bubbles and becomes thick.
Remove the pan from the heat. Stir in salt, black pepper, cayenne pepper, 3 cups cheddar, and 1½ cups Gruyere or 1 cup pecorino Romano. Set cheese sauce aside.
Fill a large saucepan with water. Bring to a boil. Add macaroni; cook 2 to 3 fewer minutes than manufacturer’s directions, until outside of pasta is cooked and inside is underdone. (Different brands of macaroni cook at different rates; be sure to read the instructions.) Transfer the macaroni to a colander, rinse under cold running water, and drain well. Stir macaroni into the reserved cheese sauce.
Pour the mixture into the prepared casserole dish. Sprinkle remaining 1½ cups cheddar and ½ cup Gruyere or ¼ cup pecorino Romano; sprinkle bread crumbs over the top. Bake until browned on top, about 30 minutes.
Transfer dish to a wire rack to cool for 5 minutes; serve.