Having looked under the covers of both of these beasts I can't say that I actually like either of them as they're both rather ugly when you pop the bonnet and something like OpenCart is actually a much nice and easier to work with solution. However, from a feature perspective OpenCart is nowhere near either Magento or PrestaShop and unlike PrestaShop it doesn't have a team of developers behind it. However having said that it is much easier to understand and modify for anyone with a basic knowledge of OO PHP. It is much better structured. PrestaShop is actually a bit ugly under the covers and CSCart (which is an open source, but not free alternative) may also be a viable solution as it only costs like $300 so not that much. I'd have to say I'd personally go for either PrestaShop or CSCart as they do have a lot more features than OpenCart and at the same time also don't cost anywhere near Magento to setup and run. Magento is an absolute nightmare if you're looking to change anything even if you really know what you're doing... Too many layers.
Another cart I would suggest to anyone who isn't fussed about technology is nopCommerce. It's a ASP.NET based shopping cart and it's very well architected and full of features. It is also very easy to modify for anyone with ASP.NET experience.