Vuze implements the BitTorrent protocol using java language and comes bundled with many invaluable features for both beginners and advanced users.
It provides you with multiple torrent downloads including upload and download speed limiting, both globally and per torrent, advanced seeding rules, adjustable disk cache and you can use a proxy, for both tracker and peer communications. You can set a default download dir and move completed files as well as automatically importing torrents from a set dir. Additionally, it only uses one port for all the torrents and includes an embedded tracker, so you can host your own torrents, and automate your shares (periodic scanning of a dir).
If you need to customize the look, then you will enjoy the fact that the Vuze interface allows for it not to mention the many useful plugins that are available.