The gentlest method of cleaning mattress stains is one called the "dry suds" method. Mix a small amount (about 2 to 4 tbsp) of powdered detergent with 1/2 to 1 cup of warm water.
Put the detergent into a bowl, then gradually add the water, beating with an eggbeater or electric mixer until it forms a thick layer of suds. Scoop off a layer of suds, and work them into the mattress stain with a sponge.
Continue scrubbing with the suds alone (keeping the mattress as dry as possible) until the stain fades, using more suds as necessary. Allow the mattress to dry completely before you put the sheets back on it.
If the dry suds method proves ineffective, you can use a cleaning product made especially for upholstery. These chemicals are pretty harsh, so be sure to follow the direction exactly.
Never use more cleaner than is recommended, and make sure your mattress is not only dry but is no longer emitting a strong chemical odor before you return to sleeping on it. If the stain is biological in nature (vomit, feces, etc), be sure to choose an enzyme-based cleaning product as these products are meant to remove these types of odors as well as the stains.
Hydrogen peroxide may be effective on blood stains, although it can also have the effect of bleaching the mattress. If you decide you'd rather risk a bleached spot than keep the bloodstain, you'll need to apply a little 3 percent hydrogen peroxide, full-strength, using a white towel or facecloth to work it in.
Start from the outside of the stain, working in toward the center, and keep applying hydrogen peroxide as needed. Do not over-apply it, however, as you should not soak a mattress with any type of liquid.
Cleaning Urine Spots
Urine stains can be removed (along with the odor they leave) by using plain white vinegar. Apply the vinegar with a white cloth or towel as in the above method for removing a bloodstain.
Again, be careful not to soak the mattress. While it may be preferable to having your bed smell like urine, you probably don't want to sleep in something that smells like a salad, either.
Hire a Professional
If your mattress stains won't come out and you've tried all of the above methods, you have two choices. If your mattress is a new and/or expensive one, you may wish to hire a professional mattress cleaning service.
This type of service will not be cheap, as they need to make house calls, but if you've paid hundreds or even thousands of dollars for your mattress, you may find it the most economical solution. If, on the other hand, your mattress isn't worth the cost of cleaning, you may be better off simply purchasing a new one.
This time, however, remember to invest in a heavy-duty mattress cover so you won't have to repeat the stain removal ordeal.