This question is likely to be closed as the answer will change over time, so is not a good fit here. The "generic" answer is...
Source Control
If working as part of a team, source control is an absolute must (be it Mercurial, Subversion, Team Foundation Server or something else entirely).
This allows you to share work between team members and also covers the "What if Bob gets hit by a bus" scenario. At least Bob will know his code won't be lost, so it's not all bad...
An IDE
I consider an IDE to be crucial to productivity (Visual Studio/Eclipse/etc). I do know some devs who insist a text editor is all you need but I personally find I can get things done faster with an IDE.
A Build/Test system
You probably won't need to set this up yourself (at least not at first) but you'll need to write unit tests for your code. Quite often tis system is tied into source control (so a checkin will cause all unit tests to be run to make sure you haven't broken anything).
Of course, how exactly tests are defined will depend on the language/framework/project.
Maintainable code
Not really a tool but something I've found a lot of solo developers don't consider... When working with others, making sure your code can be understood by someone else can be more important than having it work efficiently. That means things like useful variable names (I once saw code that started $Zeus = $_INPUT[...]
), making sure your code is DRY, not thinking of complex SQL queries as one long string, etc, etc. I could go on forever.