Quick answer: Use a front-clip harness, stop every time the leash tightens, and reward your dog for walking with a loose leash by your side.
A front-clip harness redirects your dog's momentum toward you when it pulls, making it significantly easier to control without force. Avoid flat collars and especially prong or choke collars — they create pain associations without teaching the correct behavior.
The moment the leash goes tight, stop walking and stand still. Don't pull back, don't talk, don't move. Only resume when there's slack. Over time, your dog learns that a tight leash means no forward progress, while a loose leash means the walk continues.
If one person allows pulling while another doesn't, the dog won't learn. Everyone who walks the dog must use the same approach, every single time. Even short bathroom trips are training opportunities.
Pulling is a learned habit that can be unlearned with consistent technique. With the right equipment and approach, most dogs improve noticeably within a few weeks.