I kind of consider myself an expert on stains. With 4 boys, I've seen pretty much every stain. Ink, spaghetti sauce, ketchup, blood, baby poop, toddler poop...it ain't pretty. So here are a couple products I'd recommend.

First, Shout Advanced Heavy-Duty Stain remover. I would use this for moderate stains. Mine came with a tip that has a brush on it so you can really work the product into the stain. I had a pillow case that had blood stains on it and they are all gone except one small spot. I'm guessing with a 2nd treatment I'll be good to go. Cost: $3.29 for an 8.7 oz bottle at Meijer.

Second, for tougher stains use Clorox Oxi Magic Multi-Purpose Stain Remover. I soaked some clothes with this in a bucket of water for a few days and all the clothes except one of Noah's t-shirts came out clean (that t-shirt has been in my stained pile of clothes all summer. I have no clue what he got on it, but the Clorox did get all but one small spot out.). Noah had a green polo shirt that had ink marks all over it and they all came out. Cost: $3.69 for a 32 oz tub at Meijer.
I've tried numerous other products. The last one was Zout which was cheap, but didn't work worth beans. These are products I will pay a bit more for because I washed things numerous times with Zout with no success. I'd rather pay a bit more and get things done right the first time.