This is a small dog, right? I would NOT advise a prong collar. If this dog can't pull you out in front of a truck, there is no need. It is a controlling device and is used for situations when the dog is not trained. It will not train your dog though. The dog walks nicely to avoid discomfort or pain. Dogs learn better when they work for reward than they do to avoid an aversive.
Retractable leashes encourage pulling because they're taut. Dogs instinctively pull against pressure. So, when there's pressure or tension, the dog is going to pull against it. If this is a small dog (I don't know how small) a harness is the safest thing. You don't want to damage the trachea.
At home, in your livingroom, start teaching him "watch me." He needs to pay attention to you on cue. Hold a treat in front of his nose and draw it up to your face. The second he looks at you, give the treat. Do this at random times throughout the day, start adding the cue, "watch" or "watch me." Go outside, adding a tiny bit of distractions, then add more. Really get him to look at you on cue. Get it solid. This should be one of the very first lessons for a pup because without attention, he can't hear you giving him a command for something else. LOL. He's off in La La land, sniffing things, looking at birds, watching people. Keep working on that every day while you're getting him to walk nicely. At first, he'll only be able to look at you when there's nothing else much going on. But then, you can try it while outside with him sitting next to you, then while walking across your yard...little by little, adding distractions. Soon you'll be able to say, "watch me" while you're walking, every few steps. This will keep him attentive and waiting for your next instruction. It will really help him not to pull. He should, however get to have some time during a walk....lots of time to have fun and do how he wants, sniff things etc...within reason of course. No pulling allowed. LOL.
That said, I like Boston Banker's idea and whoever said to keep changing directions. That helps too. The dog wants to go forward in a bad way. Going forward is rewarding to the dog. Don't reward the dog for pulling. If you reinforce behavior you don't want, you're going to get it. Stop frequently and ask for a sit, change direction before the dog comes to the end of the leash, reward very, very often at first for the dog keeping a little slack in the leash. Most people only reward when the dog has walked for quite a distance nicely, but just when they're thinking about rewarding the dog, he begins to pull and they miss out on a chance to reinforce. If your dog takes one step nicely, pop him a tiny treat....keep walking...another 2 or 3 steps, another treat. Show him what you want. Frequent reinforcements are what the dog needs to go from the guessing stage of what you mean to the stage where he is seeing that a certain way of walking IS what is getting him the treat. Prevent the pulling from being reinforced by rewarding with going forward when there is tension in the leash. You can stop, make zig zag turns, reverse and go back the same way and retrace the same boring path he just took, same boring smells, sights. If the dog wants to go for a walk, go forward, he needs to be shown that only by keeping along side you (aprox) will he get to go forward. Reward often....every few steps for a while. As he gets onto it and is walking better for 10 steps, say....you can then space out the rewards.
Add a cue only after he starts getting it 80-90% of the time. Get the behavior first. When you start using a cue, choose one which you'll use all the time for loose leash walking. ie: "Let's go." "Heel" is a very precise position and that comes later. Don't try to get a formal heel until his loose leash walking is good.