if I remember correctly, azureus is a bottom-up reimplementation in java, with a bunch of new features (like torrent queueing and global rate capping). TheShad0w's client is a set of tweaks and modifications to the original python/wxPython code that bittorrent came from, and I believe a lot (but not all) of his changes have either been reimplemented in azureus as well and have been merged back into the main codebase for vanilla bittorrent.

Both have their advantages and disadvantages depending how you use them and what you expect from them. Both are worth a try at least.