When you start out on a software project it is really important that you use some form of revision control for your code base. Even if you are the only developer on the project you will want to be able to roll back to previous versions of your software. As your project grows you'll want to involve more people, perhaps from other organizations, and being able to offer them a code repository to interact with is key.
There are lots of choices about what sort of revision control system to use. The key decision is between centralized and decentralized repositories. Centralized revision control systems provide a single repository which people can check out, and check back in to. Decentralized repositories allow for more complex workflows where people branch your code, into their own repository, and, where they can push back changes, or make them otherwise available to you. While there are lots of options for both flavors, Subversion and Git are currently the gold standard for centralized and decentralized revision control respectively. The good news is that if you would rather not run your own repository Google Code and GitHub