I use my ToDo List
application for building my grocery shopping list.
I initially added everything I needed to buy to the ToDo side and after everything was bought, moved it to the Done side. Next time I need to do shopping, I scroll down the Done side and move the items I need back to ToDo, add any new items that aren't in the lists yet, and print out the list (complete with little check boxes next to every item).
It would be nice if you could add something similar to your app, perhaps with a way to move things from the shopping list to the freezer and fridge, and adding them back to the shopping list when they run out or go bad.
Now that would be something great to sync with a web service.