I taught my guy not to pull with a bag of treats. If we walked and he pulled I froze. Stopped dead in my tracks, becoming a tree. The when slack was in the lead he got lots of praise and a treat. Did this a lot for a month or so...now he just wants to keep the leash slack. Make sure you come up with a "marker" word to use when the leash gets slack...I say "easy" then treat him. Now we walk and he's super good about the lead being slack, but if he starts tugging I just say "easy midnight" and he slows until leash is slack again.
I would generally avoid trying to correct the pulling, and instead focus on rewarding the slack leash. I found it much much faster and easier to get a positive response from the treating and rewarding of the slack leash.
But I am not a professional trainer and this is just my $.02
I do use a gentle leader easy walk harness for runs and whatnot. When we run he gets real excited and the harness helps with the pulling when I want to slow down.
good luck, and don't give up. Progress might be slow but its super rewarding when you can walk along at a slow stroll having your buddy walking nicely too. a slack leash is halfway to a heel

peace,
darkstar