Выбора особого нет это или ejabberd, openfire или tigase. Можете посмотреть сюда:
en.wikipedia.org/wiki/Comparison_of_XMPP_server_software
Первый — наиболее распространен. Он быстрый, классно распаралелливается(не зря на erlang написан) и поддерживает весьма обширное количество ХЕРов. Основной недостаток — мало кто знает erlang)
Openfire — удобная настройка, всякие гуи и прочая, но сильно проседает производительность при большой нагрузке. Идеален для небольших сетей.
tigase — так же как и openfire написан на яве, но куда лучше масштабируется, да и вообще пишется именно с упором на производительность. С другой стороны в последний раз когда я на него смотрел он поддерживал куда меньше плюшек и там были проблемы с документацией.
По поводу того, что почитать —
www.ejabberd.im/ www.igniterealtime.org/projects/openfire/ www.tigase.org/
Там есть достаточно подробная документация, мэйл листы и исходники, последнее пожалуй самое полезное)
А вообще не очень понятно зачем вам серверная часть, если вы пишете клиентскую.