USPS MO's have no expiration. Western Union MO's don't either, but on their website it says after a certain amount of time (3 months, or 3 years, I think) they charge a fee when you cash it in.
What a coincidence...I was just looking at MO's today. USPS seems to be the way to go. It's so cheap!!