I've heard (or read) several times in the pokedex that Pokemon prey, so do they battle each other and the defeated gets eaten?
They are practically the same as animals in real life. Each Pokemon hunts in a different way eg: Umbreon stalks its prey in dark areas and strikes, tyranitrum and tyranitar will attack like T-Rexes etc etc... I expect some Pokemon will be herbivores like Gogoat or something though. Anyway, in the events of a trainer battle, the winning Pokemon will not kill and eat the loser unless it is in the wild. There are though Pokemon hunters which are basically poachers unless again they have permission. It works like real life because Pokemon ARE animals.
Hope this answered additional enquiries! xD
Well essentially it would work the same way as it does in real life. One carnivorous Pokemon stalks it's prey, and then when in the ideal situation, attacks, kills, eats, and digests the Pokemon that it was hunting. Fairly straightforward.
I would think that trainers can control their Pokemon enough to prevent them eating other trainer's Pokemon.