What worked best for my younger guy was a sort of combination approach. I spent a good amount of time getting general control all the way around - I want my horses to ultimately swing their forehand and hindquarters like a well-oiled door off of my body language alone, dance backwards with good diagonal cadence and rhythm, and be able to walk and trot forwards on a loose lead with their throatlatch at my shoulder willingly. Forward, backward, left and right. The more you get control of those feet in every direction, the more respect the horse has for you as a leader in general.
If the horse is good at yielding the forehand and hindquarters, as well as backing up (i.e., does all of these things without any resistance at all... to the point that it looks like the horse is reading your mind) and still gets barge-y moving forward, I like to "bait" him into a mistake, and then put him to even more work when he makes the mistake. For example: I'll be leading the horse at a walk, and he starts inching forward faster and faster. I halt, using appropriate body language (eyes forward, shoulders square, exhale). If the horse doesn't halt smoothly and quickly, I'll back him up quickly, yield his hindquarters with energy, or, if there's enough space, put him out on a circle at an energetic trot with lots of changes of direction. Once I have his attention, I'll ask for a halt again. If I get it, great! I allow the horse to rest, rub his neck, and generally reward him. If he again runs through the request (doesn't have to be literally running... anything except fast-planted feet), I repeat until he responds.
My own horse gets spring-fever this time of year, and likes to walk faster than I'd like going from the pasture to the barn and vice-versa. It's been a long winter, and who can blame him? But even so there's no excuse, and he can't be a brat just because the air is warmer. On those kind of days, we'll literally make the walk five steps at a time, making transitions the whole way. Go forward, halt, go forward again. If he fudges a halt, I get his attention by moving his feet, and ask again until he gets his beans back in the can. It's a great opportunity to test what he knows in his brain against the springs in his feet.
The trick is in consistency, timing, and effectiveness. Hesitating, debating whether you're happy with the attempt after it's happened, accepting sloppiness sometimes and not others, and sending murky body language all contribute toward problems. I like to "teach" the lesson in a more "formal" training session, but outside of that session the problem needs to be addressed as well - it all comes down to consistency, and horses never stop learning.