Yes, it's generally true that MBA programs prefer to see a fairly recent GMAT score. In theory, the GMAT is supposed to give schools an idea of how academically prepared you are for business school; if your score is too old, it's awfully difficult for MBA programs to know exactly how sharp your skills will be when you actually start graduate school. It's reasonable to think that your quant skills might atrophy in the four years between undergrad and b-school, so it isn't too surprising that schools want you take the GMAT within a couple of years of your projected matriculation date.
I've occasionally met applicants who've managed to get into business school with a crusty old score report, but it isn't all that common. If your profile is absolutely irresistible in every possible way, then it's hard to imagine that a business school would reject you just because you took the GMAT three or four years ago. If you can prove that you've kept your academic skills fresh (by, say, taking some calculus or economics or stats courses before applying to b-school), then it's a little bit easier for adcoms to accept an older GMAT score. And if your GMAT score and academic record are absolutely phenomenal, then MBA programs probably won't really care if the score is a little bit old. If, for example, you got a 3.9 in a quant-heavy major from an Ivy and then nailed a 750 on the GMAT, why would anybody worry about your academic skills?
So there's no hard-and-fast rule here, but if there's any hint of weakness in your academic record, then there's a good chance that MBA programs will (understandably!) want to see a more recent score.
If you're already close to clobbering the GMAT, then you might as well get the test over with, and hope for the best when application time hits in a few years. But if you think that you'll have a marginal profile four years from now, then it might make more sense to wait.
I hope this helps!
Helping students kick the GRE and GMAT in the nuts since 2002. http://www.gmatninja.com.