in Azureus you can control EVERYTHING,
you can control upoads on a torrent by torrent basis, while not changing the overall upload rate
(say you want to seed a particular TV epp more than a linux distro you just got on a whim, instead of the two of them getting equal upoad speeds)
also, you can limit the download speed of a particular torrent, so as to not saturate your download bandwidth and allow for other uses of speed, such as online gaming and web browsing while having bit torrent running at the same time.
you also have the abilty of choosing what particular files you can download, instead of the whole torrent
aZ has built in uPnP capabilites that allow the program to directly communicate with your uPnP router, eliminating the need to manually open ports in your firewall etc.
a built-in tracker in aZ allows you to set up your own bit torrent files and host them for yourselves, even make your own torrents.
why Java? becuase its a great cross platform lang. there are versions of aZ out there for linux even, prolly could run on a mac (shudder)
(Nothinman, show me a better client? please, do it)
basically, aZ is more robust with more features etc. than your run of the mill Bt Client.
happy?