My dog pulls on lead. What is the best way to teach "heel"?

5 steps for reliable loose lead walking

[These steps are identical for an 8-week-old puppy or re-training an adult dog]

Do NOT even think of taking your dog for a street walk around the neighbourhood until s/he knows HOW properly to go for a walk. 

What does 'properly' mean? It means never pulling, not even for one step, and always walking with a J bend in the lead at all times.

When learning to drive a car properly, it is sensible to practice in an empty car park before going onto a main road! Similarly, trying to get to get to step 5, below, without teaching the preceding steps is a guaranteed recipe for the formation of disastrous walking habits.
 
Step 1.
Off lead. Follow me around the house, off lead. Keep moving away from the dog, s/he must do the following, not you. Reward frequently, every 2-3 seconds, if s/he is close to you. Make the sessions short, 3-5 seconds and increase gradually to 15-20 seconds. Be excited and interesting and happy and a fun person to be with. Who wants to follow an unenthusiastic grouch?
 
Off lead: repeat above exercise in the garden as it is familiar territory there wont be many new smells or other distractions.
 
Step2.
Off lead. Start with the dog sitting on your left (either lure him/her into position or put yourself into the correct spot). Step off with your left foot (as with words, if we are consistent with our body language makes it easier to learn) and take two steps and then stop and lure the dog into a sit. Repeat 50 times, then do 4 steps >6 > 8>10 steps up to 25 metres eventually. Reward often!
 
Step 3.
On lead. Get your dog used to sitting around the house and garden on a loose lead (without going for a walk). Put the lead on; take it off, reward your dog for remaining calm. Practice frequently.
 
Step 4.
On lead, follow me around house and garden. The lead should NEVER be tight. In positive reinforcement training the only reason for a lead is for safety. A lead should not be used, as it is in other training methods, for education.
 
 Step 5.
On lead. Once the dog can walk close to you on lead in a non-distracting environment, then take the show on the road - with very gradual introduction of distractions like other dogs, people, bikes, etc. Always set your dog up to succeed, step by step, so that s/he never fails and you can reward for ever-improving performances.
 
Dog parks are an ideal place to practice bad behaviour and going to one too early without 1) a reliable come and 2) being able to walk on a loose lead is another great recipe for disaster!
 
Dog parks at quiet times can/should be used as a training area with a few exercises on lead inside the park. Then the reward for behaving well, such as doing a couple of instant sits and drops, is to take the lead off and release the dog to play.
 
N.B
        
If you pull your lead the dog's automatic reflex action is to resist & it will pull harder!
If s/he pulls, do not follow your dog [which in itself is a massive reward that will reinforce the habit]. You should be the leader, not the follower! If you follow you are being well trained by your dog! Anticipate the lead becoming tight and try one of the following:

1.        Stop, bend your knees & become a tree (dogs don't pull trees.)
2.        Turn and go in the opposite direction; if s/he pulls, turn again.
3.        Walk in a left hand circle (no point in pulling!)
4.        Use fences and walls to practice along.
5.        Penalty yards = walking backwards each time the dog pulls in the direction s/he wants to go, eg. to get to the entry to the off leash park.
6.        Walking close to the street gutter will make your dog either stick close to you or else have to walk at a different level and try to straddle the gutter

If your adolescent/adult dog has trained you then you need to go back to kindergarten & start again, as in 1-5 above