I got these from the Barefoot Contessa, and they rock!
1 cup milk
1/4-pound (1 stick) unsalted butter
1 teaspoon kosher salt
1/8 teaspoon freshly ground black pepper
Pinch of nutmeg
1 cup flour
4 extra-large eggs
1/2 cup grated Gruyere, plus extra for sprinkling
1/4 cup freshly grated Parmesan cheese
1 egg beaten with 1 teaspoon water, for egg wash
Preheat the oven to 425°F. Line 2 baking sheets with parchment paper.
In a saucepan, heat the milk, butter, salt, pepper, and nutmeg over medium heat, until scalded(heat just below the boiling point). Add the flour all at once and beat it vigorously with a wooden spoon until the mixture comes together. Cook, stirring constantly, over low heat for 2 minutes. The flour will begin to coat the bottom of the pan. Dump the hot mixture into the bowl of a food processor fitted with the steel blade. Immediately add the eggs, Gruyere, and Parmesan and pulse until the eggs are incorporated and the dough is smooth and thick.
Spoon the mixture into a pastry bag fitted with a large plain round tip. Pipe in mounds 1 1/4 inches wide and 3/4-inch high onto the baking sheets. With a wet finger, lightly press down the swirl at the top of each puff. (You can also use 2 spoons to scoop out the mixture and shape the puffs with damp fingers.) Brush the top of each puff lightly with egg wash and sprinkle with a pinch of Gruyere. Bake for 15 minutes, or until golden brown outside but still soft inside.
To freeze: Bake, allow to cool, and put in a sealed plastic bag. When ready to use, reheat at 425°F for 5 minutes.