Cook's Illustrated decided to tackle this exact problem and came up with a "foolproof" technique that I've been using for several years. I think they said that they went through several hundred eggs before they perfected their process. Here's their video:
Having done this several dozen times, here are the things I have found to be important.
1. The video says to cook for five minutes, but their cookbook and the America's Test Kitchen both say four minutes for a normal egg, and 4.5 minutes for a firmer egg. Five minutes is too long.
2. Make sure to simply lower the cup with the egg in it: don't "pour" it out. If you tip the cup to pour it, the egg will spread out too much. Also, lower the eggs into the pan from the center of the pan, with the cups facing outward. Doing this ensures that the eggs don't all clump together in the center of the pan. The video above shows more of a pouring motion rather than lowering the cup into the pan, and shows the eggs somewhat coming together in the center. Lowering the cup and then sliding the cup out sideways from under egg leaves the egg almost undisturbed at whatever point you lower the cup.
I only put one egg in each cup, and I usually cook only four eggs at a time. I like soft eggs, so I only cook for four minutes.
3. Make sure to include the vinegar. Coupled with my hint above, it will help keep the egg together.
4. Make sure the water is really boiling hard before you turn off the heat and add the eggs.
5. Make sure to start your timer just before you add the eggs. Since you won't remove the eggs until after the timer goes off, and since you may not get to the eggs for 5-10 seconds after the alarm sounds, you avoid adding unwanted extra time by doing it this way.
6. Only lower two eggs simultaneously. Some versions of this CI method show them holding two cups with each hand and lowering them all at once. Since I typically poach eggs for Eggs Benedict, and since I usually serve two eggs per person, having the egg timing separated by 10-15 seconds lets me lift the first set of eggs out when they are done. I put them on the ham/muffin, and by the time I do that (10-15 seconds), the second set of eggs is the same exact doneness.
7. Make sure to cover the eggs as soon as you add the last lot.
One other slight change I've made to their method is that I skip drying the egg out on a paper towel. It is tough to get them back off the towel and I find that just leaving them on the slotted spoon (I use my deep fat fryer spatula, which has long slotted holes) for just a few seconds is just as effective and saves a huge amount of time and a lot of aggravation trying to separate the egg from the clinging paper towel.
So, try this method. You will have to experiment with the time in order to get the degree of doneness you want. I use exactly four minutes for my timing.