Do I buy one server or different servers for different branches?



XMPP is just like e-mail. You can have different "branches" with different domain names chatting; as an example:

branch1 is one location with one server; users can chat between each other
user1@branch1.com
user2@branch1.com
user3@branch1.com
user4@branch1.com
.....

branch2 is another location with one server; users can chat between each other
user1@branch2.com
user2@branch2.com
user3@branch2.com
user4@branch2.com
.....

when user1@branch1.com chats with user2@branch1.com their chat is Client-Server-Client

when user1@branch1.com chats with user1@branch2.com their chat is Client-Server-Server-Client

Now with Jabber like with e-mail you can decide to have a server for each "branch"; the advantage is scalability and the fact that if an internet connection goes down, users of one server can still chat between each other.