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. It also has the advantage of removing dust mites and their refuse.
Use enzyme cleaners. Enzyme cleaners are effective in breaking down the 'structure' of the stains which helps to lessen them.
Unidentified Mattress Stains
Spray it with a citrus type cleaner and let it set for about five minutes. Afterward, blot (don't rub) as much of the cleaner out as you can using a clean, white, absorbent cloth. A mild dish detergent can also be used.
Use hydrogen peroxide. Apply to the mattress and blot it while it is bubbling. This may not remove all the stain, but will help to lessen it. Be sure to blot it with a clean, white, dry cloth.
Rinse with cold water (hot cooks the proteins). Rub in meat tenderizer from the pantry which removes the proteins. Rinse and follow up as per rust removal to remove the iron found in the blood.
Create a baking soda solution. Mix one part baking soda and two parts cold water in a large bowl to make a solution. Apply it on the area using a clean cloth and let it sit for 30 minutes. Use a cloth damped in cold water to rinse the remaining solution and then apply a dry towel to absorb the moisture.
Apply detergent. Mix 1 tablespoon of liquid dish washing detergent with two cups of cold water in a bowl. Soak a white cloth in the solution and apply to the affected area. Gently brush the affected area with a toothbrush and rinse the solution by blotting with a wet cloth. Use a cloth towel to dry the stained area.
Cigarette Odor Removal
Using the same processes as above, apply it to the entire mattress, one section at a time.
Launder your linens frequently. If you smoke, you should do this even more often than you would on an ordinary basis. This will help keep the odor from being so pervasive
Spray the odor out. Use two large cans of Lysol spray (one for each side) and saturate the mattress. Let it dry for a couple of days and then follow up with two large bottles of Febreze. Place a hypoallergenic mattress pad cover on.
Mold and Mildew Removal
Give your mattresses a 'suntan'. These types of stains are caused by too much moisture. Try taking your mattress outside on a bright, sunny day and let the sun dry it out. Try to remove the excess mold and mildew by wiping or sweeping it off.
Vacuum your mattress on both sides. When you've finished, dispose of the vacuum's filter and bag. This will prevent the mold spores from leaking out the next time you use the vacuum.
Mix equal parts of isopropyl alcohol and warm water. Sponge it onto the mattress. Rinse the area with warm water.
Use a common disinfectant. Products such as Lysol will kill any spores that linger.