First, set up a double boiler. You can do this by placing a saucepan with several inches of water on the stove, and bring it to a simmer over medium heat. You'll also need a non-reactive stainless steel bowl to set on top of the saucepan. The bottom of the bowl should not directly touch the water.
Use a microplane zester to zest the lemons first, and then juice them. You'll need 1/2 cup fresh lemon juice. You may only need to juice 2 large lemons to get 1/2 cup of juice, but have a third lemon on hand, just in case. If you're using small lemons, you'll need 4-6 lemons to get 1/2 cup of juice.
In your stainless steel bowl, whisk together the egg yolks, sugar and lemon zest. If using corn starch for a thicker lemon curd, add it with the sugar.
Slowly whisk in the lemon juice, until smooth.
Set the bowl on top of the pan of simmering water. Cook the lemon curd over the water, stirring constantly but gently with the spatula - no need to stir aggressively. Continue stirring and cooking the lemon curd, until it's thickened enough to coat the back of a spoon, and it leaves tracks against the side of the bowl (this means when you swirl the curd against the side of the bowl, run your finger through the curd - if it's thick enough, your finger will leave a track through the curd without the curd running back through). This process can take anywhere from 15-20 minutes, depending on how vigorously your water is boiling.
Remove the bowl from the heat. Whisk in the cold butter, a few pieces at a time, until it's completely disappeared and the curd is smooth. If the lemon curd has cooled down too much and you're having trouble getting the last few pieces of butter to melt, you can place the bowl back over the hot water, long enough to finish whisking in the butter.
Now strain the curd (to remove the lemon zest and any bits of egg) by passing it through a wire mesh strainer.
Store the lemon curd in a glass jar with a lid, and refrigerate for up to 2 weeks.