I am about half way through upgrading all my dbs to Oracle 11gR2 from various versions of 10gR2. Out of all the upgrades I've performed from 7.0 up to 10gR2, the 10g to 11g upgrade is by far the most hassle free of all.
I have abandoned the GUI upgrade tool this time. The GUI tool is fine, but internal issues prevented me from running the GUI remotely. This meant that somebody had to be on-site to push buttons for each and every 9i to 10g upgrade. I have moved to a command-line upgrade that I have automated through a series of ksh scripts. I feed the right parameters to the script and two hours later it's done. No fuss, no muss.
The most important thing I have learned so far is that utlu112i.sql is your friend. If utlu112i.sql even hints that something might go wrong during your upgrade, you better fix it. For example, it's a heck of a lot easier to fix JVM issues before the upgrade rather than during the upgrade. You have to trust the utlu112i.sql script. If it thinks you don't have enough space in your SYSTEM tablespace, you probably don't. utlu112i.sql is a little cautious on some stuff like the DBMS_LDAP warnings, but it's best to understand what all the warnings mean.
My general approach has been to upgrade what I have and make sure everything works on 11g before I start to exploit the 11g features.
Full Speed Ahead! To infinity and beyond!