We just finished another upgrade project for ILGS today. This is a really tricky project as it has a very large database. More than 100k products, about 50 custom modules are really problems for even an expert. From my knowledge and experience in this type of projects, I will write down a way which we usually use to update Magento version.
First of all and it is the most important, always keep back up and do the update in a development site. We need a way to come back whenever we need.
Step 1: Export current database
When exporting, please remember to check on the check box "Disable foreign key checks". Select "Complete Inserts" instead of "Extended Inserts"
Step 2: Create a new database and import the database you just exported. If the database is too big, try to use bigdump or Mysql front.
Step 3: Download Magento latest version, extract and install it using the new database.
Now your Magento site is already updated to latest version and still have all data (catalog, customer, order). The next step will be installing necessary custom modules. You can install these modules through Magento connect or upload using FTP. Try to find latest version of modules which work with your Magento version.
Now you need to copy templates, skins from the old site to new site. This might be the trickiest part, especially when you update from a very old version (from 1.3 to 1.6, for instance).
Test, test, and re-test. Make sure everything works, especially checkout process. That is really important. Once it's ready, make a switch.
I hope this can help someone who wants to update their Magento site. If you have a better way for this work, please advise.