Some big ones are sourceforge, googlecode, github, and bitbucket.
The first one probably has subversion (don't know), the second one definitely has subversion (I use it), it also has a few other ones), the third one only has git (they claim to also support mercurial, but it's not good, especially if you're not used to it), and the fourth one has mercurial (and maybe other ones too).
The free versions usually mean your code is public, and they usually have some other limitations. Often they also have a paid variant with different limits.
Subversion it the easiest to get into, but it only works for people that have commit access. The central server keeps all history, and you only have a working copy. Mercurial and git are distributed systems, where each person has a full copy of the history. You also don' really need a central point, although it's often useful to have one. Mercurial is more oriented at the end user, git is more technically oriented.
My project: Messing about in FreeRCT
, dev blog
, and IRC #freerct at oftc.net