Use Google Code. It provides free hosting for open source projects. It will give you a choice of a free Subversion or Mercurial repository. It also includes a Wiki for organizing development or for documentation. Additionally, it provides a release mechanism for uploading packages of released versions of code.
If your project is not open source, then you will probably need to use a non-free service (I am not aware of any free hosting for commercial, closed-source projects). I have had good experience with wush.net; they are fairly inexpensive, and they can also provide you with an integrated Trac wiki. I haven't tried it, but svnrepository.com is another possibility as is beanstockapp.com. You'll really have to shop around.
In answer to your basic question of hosting your own vs. using free hosting vs. paying for hosting... I strongly recommend you just fork over the cash and pay for private hosting. It really isn't that expensive, and these companies backup your data in multiple locations and make certain guarantees about uptime. You need to look at the details of the paid plans to know what service-level guarantees are made, but I can bet they are going to be much higher than what you could do in-house. For example, if you hosted the SVN repository on your own computer, would you have a backup in a different geographical location? If not, what do you think would happen to your project if, God-forbid, there were a fire or something? Best to use the paid hosting.