My understanding is that TFS is not just a source control system. You may also need issue tracking, code review, a wiki system, etc. and have them all integrated.
An alternative as I mentioned before is the Atlassian Tool Suite (JIRA, Crucible) which is really inexpensive for small teams (the whole shabang will cost something like $70-80). That's personally what I'd do if I was running a 10 man or less team. If you are a large organization it is also relatively inexpensive (because they have an unlimited CAL license available).
If you want to go full open source, there is also Trac and Redmine. Some of the most productive and respected software development teams where I work use Trac, I don't know if there is a correlation there or not though.
For source control I prefer Git, and have begun to use for a new project I've recently became project leader on. But Subversion is pretty good as well.