I did it for some 4-5 project, the reasons were these:
I felt the program was completed, but there were areas of improvement. It's a good idea to open source such program if you don't make any money of it.
The program needed many features, it was too huge to be built by one person. Making it open source attracted 3 other programmers and now (4 years later) we are a great team - still developing it. Being part of the team allows you the exchange ideas and experience. If you don't work at some software company where you have that already, this can be very good.
The program was completed and worked fine, however, it had many features and there were odd bugs here and there. Regular users have a hard time finding causes of those bugs, esp. if they do not have the source. Benefit for me in the end was seeing some nasty bugs fixed, and getting some unexpected cool features contributed.
Just make sure you choose a license that will not make you sorry later. If you don't want someone else to take your code, improve it and sell it - without contributing the changes back - then go with GPL.
OTOH, if you want to be able to use other people's contributions in some other closed-source project of yours, it's a good idea to use MIT license.
As for the hosts: you get the benefit of not having to pay for the bandwidth, not having to set up the bug tracker, Subversion repository, mailing list and similar software yourself. Architecture is there. Just make sure you register your own domain for the project, so you have control and you can move it to a different provider or even host it yourself easily. For example, I had this problem that there were hundreds of sites linking to my *.sourceforge.net project, and I wanted to move it away to host it on my own server, because website needed to be very interactive and PHP/MySQL heavy.
I tried sf.net, Berlios and Gna! so far. Sf.net is most comprehensive and has the best features. Gna! has a lot of restrictions, but it is good for small projects, since it rarely has any downtime (sf.net is constantly under heavy load). Berlios is somewhere in between, YMMV.