DXMPP creates a themeable browser chat client for an XMPP server.
At its core, it uses the Strophe library to connect via long AJAX pulls (aka Comet) to an XMPP server. Users are automatically registered and associated w/ Drupal users, and it also automatically synchronizes User Relationships.
By default, the themeable chat sessions are displayed via JavaScript in a fixed bottom position on the page. The roster expands, and an icon (via ImageCache, if enabled) representing each user will expand a chat box next to it.
I've successfully gotten the module to integrate with ejabberd, although there are other alternatives, such as OpenFire, both licensed under GPL.
After enabling and configuring your XMPP server, you'll also need to copy the Strophe library somewhere in your /sites/all/libraries folder. The module will automatically discover its location.
Look here for more helpful links and documentation for the set-up and configuration, which can be difficult at best, especially when you're first starting out with XMPP.
You may also consider joining the Drupal XMPP group.