If you are only going to have 3 programmers working on the code (i.e., 4 users including yourself), then you could go with Bitbucket to host a private Git repository for free. Alternatively, you can just host it on a server somewhere, but then you may have to consider things like user accounts and permissions. If you do not already have your own issue tracker, then the lightweight one in Bitbucket might suffice. As sneakyimp noted, the idea here is communication, and these tools are meant to facilitate that, not replace it.
sneakyimp wrote:SVN is another good one but I think it always requires a server to host the code repository.
In practice for teams there's usually a "blessed" repository hosted on a server even when distributed version control systems are used, so it isn't actually a disadvantage for Subversion. What would be a disadvantage is that if the central server is down, you may be screwed until it goes back online, whereas with a distributed version control system like Git life can go on.