To make the cream puffs: Preheat the oven to 425 degrees F. In a large saucepan, bring the water, butter, salt, and granulated sugar to a rolling boil over medium-high heat. When it boils, immediately take the pan off the heat. Stirring with a wooden spoon, add all the flour at once and stir hard until all the flour is incorporated, 30 to 60 seconds. Return the pan to the heat and cook, stirring, 30 seconds to evaporate some of the moisture.
Scrape the mixture into a mixer fitted with a paddle attachment. Mix at medium speed. With the mixer running, and working 1 egg at a time, add 3 of the eggs, stopping after each addition to scrape down the sides of the bowl. Mix until the dough is smooth and glossy and the eggs are completely incorporated. The dough should be thick, but should fall slowly and steadily from the beaters when you lift them out of the bowl. If the dough is still clinging to the beaters, add the remaining egg and mix until incorporated.
Using a pastry bag fitted with a large plain tip, pipe the dough onto the baking sheet, in 2-inch diameter rounds or balls. Whisk the remaining egg with 1 1/2 teaspoons water. Brush the surface of the rounds with the egg wash to knock down the points (you may not use all the egg wash). Bake 15 minutes, then reduce the heat to 375 degrees F and bake until puffed up, and light golden brown, about 20 minutes more. Try not to open the oven door too often during the baking. Let cool on the baking sheet.
To fill the cream puffs, place a pastry tip on your finger and poke a whole in the bottom of each puff. Whip the cream with the sugar and vanilla until stiff. Pipe whipped cream into each cream puff and chill until ready to serve, no more than 4 hours.
Notes about the recipe: The moisture in the eggs turns to steam and puffs the batter to try to release itself. You can fill them with anything.