Currently we recommend Gaim 1.5 and Adium X to users for use with MIT Chat. Here is a review of XMPP desktop clients currently under active development. I've restricted my attention to open-source clients, with the exception of iChat.
Pidgin
Pidgin is the code successor of Gaim, whose name had to be changed due to a trademark dispute with AOL. Pidgin is a multi-protocol client with support for all the major commercial IM protocols as well as XMPP. Pidgin's UI has been revamped somewhat relative to Gaim; the most notable difference is the removal of the per-protocol icons in the buddy list.
Pidgin also contains a terminal client called Finch. Finch is a little odd from a terminal user's perspective because it's basically a port of the graphical client to ncurses, but it could be useful in a pinch. It has a non-trivial learning curve.
Implemented in: C and gtk
Available for: Linux, Windows
Notable features: Chatroom configuration, Kerberos single sign-on support, commercial IM protocol support
Notable bugs or issues: Prior to release 2.1.1, Pidgin does not handle multi-value lists in chatroom configuration properly. Pidgin's single sign-on support is not build by default, is not present in the Windows builds, and does not work with our Openfire server due to a server bug. It can be made to work with a one-line code change and a custom build to turn it on.
Adium X
Adium X is an OS X client based on the same library as Pidgin uses. It supports the same protocols and most of the same features.
Implemented in: Objective C and Cocoa
Available for: OS X
Notable features: Commercial IM protocol support
Notable bugs or issues: Single sign-on support is not available in the default builds, but can possibly be made to work with a custom build as with Pidgin. Adium does not support chatroom configuration.
iChat
iChat is the native chat client shipped with OS X.
Implemented in: (Unknown; proprietary code base)
Available for: OS X
Notable features: Commercial IM protocol support (AIM only), video/voice support
Notable bugs or issues: Antiquated authentication support. Complains that the user is about to authenticate with a plain-text password, even though the password is being sent over SSL. This is possibly due to the self-signed certificate used by jabber.mit.edu. Does not support chatroom configuration. Video/voice support uses a nonstandard protocol and will only work with other iChat users (which isn't a big limitation at the moment since very few other clients have any video/voice support).
Spark
Spark is an XMPP-only client distributed by Jive Software, the same company that distributes our Openfire server.
Implemented in: Java
Available for: Windows, OS X, Linux
Notable features: Kerberos single-sign on support, chatroom configuration, SIP phone support
Notable bugs or issues: Does not handle multi-value list fields properly in chatrooom configuration; this has been reported upstream. SIP phone client support most likely does not work with our infrastructure at this time; we are working with Jive to close the gap. From a longer-term perspective, Jive is shifting resources to their Flash-based client (not considered in this review), so continued maintenance of the Java-based Spark client may become an issue.
Psi
Psi is a somewhat popular XMPP-only client.
Implemented in: C++, Qt
Available for: Windows, OS X, Linux
Notable features: none
Notable bugs or issues: Antiquated authentication support. Must check "allow plaintext authentication" to connect to MIT servers even though authentication happens over SSL. Does not support chatroom configuration.
Gajim
Gajim is an XMPP-only client.
Implemented in: Python, PyGTK
Available for: Windows, Linux; bold users may be able to get it to work on OS X
Notable features: Chatroom configuration, privacy lists
Coccinella
Coccinella is an XMPP-only client.
Implemented in: Tcl, Tk
Available for: Windows, OS X, Linux
Notable features: Chatroom configuration, privacy lists, shared whiteboards, VOIP (untested at MIT)