e-speak

SIP and XMPP solve different problems

They are often compared because both can set up a call. They were designed for different things, and the comparison only makes sense once you separate those things.

SIP

Session Initiation Protocol. Its job is to create, modify, and tear down sessions. It is modelled on HTTP: text-based, request/response, with a separate session description (SDP) carried in the body. It is the protocol the telephone network adopted, which is why it won in enterprise voice.

XMPP

Extensible Messaging and Presence Protocol. Its job is messaging and presence, with extension protocols (Jingle) bolted on for signalling. It won in chat, and in some consumer voice products that already had a roster of contacts.

The practical difference

If you need to interconnect with a phone network, you need SIP, because that is what the carriers speak. If you need presence, roster, and multi-device message sync, XMPP gives you that natively and SIP does not.