I think there are two angles to look at this, what development features each site offers, and what audience does each site reach.
From a development perspective, if you are interested in DVCS (Git or Mercurial) then CodePlex, GitHub, or Bitbucket are your best options. Google Code and SourceForge support DVCS as well, but their support for DVCS is not great. If you want Subversion, then Google Code is really the best Subversion host although SourceForge is reasonable, and CodePlex offers support for Subversion clients as well. Other core features (e.g bug tracking, forums/mailing lists, wiki, etc) are offered by all three but have some differences so perhaps more personal preference there.
From a site audience perspective there are big differences between the sites that can be important to your project. For example, if your project runs on Windows or other Microsoft technology, then CodePlex has a much higher concentration of Windows users so you are going to get higher downloads. For similar reasons, if you would like other developers to contribute to your project, CodePlex has a much higher concentration of Microsoft developers so you are more likely to get contributors. If your software runs on Linux then Google Code or SourceForge have a much larger Linux user base so you'd get more downloads/contributors there. If your software runs on Mac, I'm not as sure but I think GitHub might actually have the edge there.