If you haven't thought about cleaning your mattress lately, think about this: You probably spend at least six or seven hours there every night. That's a long time to be somewhere that's not as clean as it could be.
Vacuum the mattress. This helps to keep it clean by the sheer fact that when it does get wet, there is less matter in the dirt to cause it to stain.
Try using an upholstery cleaner. Since they are made for surfaces that touch your skin (e.g. your couch), it should work unless you are extremely sensitive to cleaners in general.
Mattresses typically acquire three types of stains: blood, urine, and what we’ll just call “other bodily fluids”. While it’s best to treat stains immediately with cold water and a little dish soap or hydrogen peroxide (hot water sets these type of stains), let’s face it, sometimes sleep is more important.
For any telltale odors, spray the mattress and box spring with a disinfecting spray, like Lysol. It's safe to use on fabric and kills bacteria that causes odors.