GPL is the most common if you really want to contribute to the open source community as it enforces that derivative works should be open source too.
If you don't care about people doing closed source games with your code then BSD or MIT type licenses are very popular. You can also use LGPL which lets people use your code as shared/dynamic library without open sourcing their code, no static linking is allowed unless their code is open source too.
Free Software Foundation recommends using Creative Commons licenses for the assets (sounds, images etc...) as L/GPL is too code oriented.
If you want to keep selling your game you can also not release your assets as public domain. (such as Aquaria, Gish, Lugaru or Penumbra) This way, you still contribute code to the community but people willing to play the original game will have to pay for it.
You won't probably be able to enforce anything by yourself but FSF (Groklaw too maybe?) provides services to assist people with L/GPL violations.
Your firends:
http://www.fsf.org/http://www.groklaw.net/