You say that, and yet I can't get wine or tomato stains out of a shirt that's been pretreated and washed a few times.
For tomato, try soaking in one cup vinegar to one gallon of water for 8 hours. You can also add two cups (or two cans) of club soda, making sure to pour it slowly over the stain before soaking in the rest of the solution (or soak in club soda for 30ish minutes till it isn't fizzing much). The acid in the vinegar/club soda will break down the proteins in the tomato was well as disolve away any lipids that are causing it to resist water/soap. The active carbonation in the club soda will assist in penetrating the material making up the stain.
Addiitonally, make sure to up the temperature of your wash as hot as you can. This will increase the effectiveness of your detergent. It can also help to take a laundry brush (toothbrush) to the stain to further aid in removing stains.
It can also help to wash it at a laundromat with good machines; the machine at home might just be underpowered.
This is acidic, so it may affect fabrics that aren't color safe or delicate garments. For those, I recommend just taking it to the dry cleaners.
For wine you can try the same, but it is very hard to get wine out without bleaching, especialy if the stain has set. You can try sun bleaching the fabric by leaving in a window in full sun for ~a month or more, but personally when you are that point I either call in the pros or write it off.
Depending on the color of the garment, you can also just full nuclear option and get a bottle of Rit and just make the cloth darker than the stain.
In any food stain, the most important thing is the speed of pretreatment; warm water in seconds is worth detergent in an hour.
AND BERGER FELL INTO THE DAMN RIVER SO HIS COAT WAS IMMEDIATELY PRETREATED THAT SHIT IS NOT NATURAL
and I demand full realism in my Manga about the slime that has reanimated the corpse of a Saint with holy powers.