I think it would have to be both. I think that because it is a hard question, there is lots of value in it. You're right, Google should be doing this. They already have Google Shopper where you can snap a picture of a product or barcode with your phone and get a price comparison. Maybe they could had a user-generated description to that so people can build up that database.
Or maybe it could be a scrappy startup like FourSquare for local products who turns it into a game. Like get badges for finding products at the weirdest places, or for finding the lowest price on an item in an area. Or how about a Groupon type deal where something goes on sale at a specific location for a set period of time, and users can sign up for alerts when a product they want is on sale near them, or when it is in stock. That would encourage the businesses to supply an XML feed of prices and inventory.
The first approach might be possible if you're google, and the second might be possible if you're yelp. I'm not sure how to do it on a small scale. Though I suppose you could start with a single city and a lot of shoe leather.