I dislike GIT, but that is just personal preference (I dislike how it handles certain things and I dislike it's structure, being partly shell scripts and partly binaries, all seems a bit messy to me. I prefer systems, that do it all in one single binary and entirely written in a single language)
If you need a central source code server that is always the reference for state-of-the-art code, SVN is still the best choice IMHO. If you want totally independent, distributed repositories, my first choice is still monotone. I like the way how it works, how you operate it and the C++ code seems well designed and clean. It's not the fastest player in the game, though (however, GIT is also only fast on Linux or POSIX-like systems, GIT on Windows is no fun!). Distributed SCM has the advantage, that two developers can exchange their code changes without going over a central server first (and thus probably ruining an automated build by checking in broken code!).
You will need a ticket system, to have a list of tasks, an overview who currently works on which task and so on. Trac is an option, but we tried that, and it caused us some headache. Actually the ugly it might look, Bugzilla (from Mozilla) is very powerful. However, we ended up designing our own system with an own database backend. To be honest, most developers dislike it, because it also looks ugly and is poor to operate, however, it servers all our needs so far and easily extensible. My personal advice would be, don't do that. Don't design an own ticket system, rather take an existing one (Open Source) and modify it, the result will be better IMHO.
Setting up an own Jabber Server is a good idea. You can have developers chat with each other, independently of any other company (compared to using Google Chat, AIM, MSN, etc.), you can have group chats there, all chats can be easily encrypted (just like file transfers) and you can use it broadcast information (like for example, if an automated build has failed).