This is from Martha Stewart, so be forewarned...
6 slices good-quality white bread, crusts removed, torn into ¼- to ½-inch pieces
8 tablespoons (1 stick) unsalted butter, plus more for dish
5½ cups milk
½ cup all-purpose flour
2 teaspoons kosher salt
¼ teaspoon freshly grated nutmeg
¼ 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. Place bread pieces in a medium bowl. In a small saucepan over medium heat, melt 2 tablespoons butter. Pour butter into the bowl with bread, and toss. Set the bread crumbs aside. In a medium saucepan set over medium heat, heat milk. Melt remaining 6 tablespoons butter in a high-sided skillet over medium heat. When butter bubbles, add flour. Cook, stirring, for 1 minute.
Slowly pour hot 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, nutmeg, 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; scatter 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.