Good House Keeping has a great little resource that you can use to look up the best stain removal process for specific stains. You can use this link to check it out http://www.goodhousekeeping.com/home/stain-buster/ . But here are some methods I like to use that I find to be quite effective.
Fels-Naptha Laundry Bar
This is quite possibly the best and cheapest option out on the market. Its only $0.97 at Wal-Mart. It will get out chocolate, blood, fruit stains, greasy stains like ring around the collar, oil, and many many others. I have even had some success removing ink too, it takes multiple treatments but its slowly lightening the stain (this is one that has been washed and dried into the fabric many times so its pretty well set in. You might have better success if the stain is fresh.) For colored stains its best to treat it as soon as possible, but I have used Fels on stains that are years old and have seen some come up completely or have been dramatically reduced. Fels is color safe, wont bleach, and I love the smell. Fels actually is the soap I recommend for making your own laundry soap, but that's not enough to lift certain stains so I would still recommend pre-treating it.
White Vinegar and Ammonia
Straight white vinegar can be used on old greasy stains and Ammonia can be used on fresh greasy stains. It might be necessary to treat the stain a few times. Allow the stain to dry completely before treating it again.
Cornstarch, Potato or Rice Flour
This treatment is best used on fresh grease or oil stains but can also be used on liquid stains to help soak up some of the fluid before using another stain treatment. Sprinkle the powder over the stain and allow it to sit till it begins to cake up. Then brush or shake it off and reapply until the powder stops caking. This should remove the majority of the oil or grease. Then pretreat the stain with some other stain remover like Fels- Naptha.