Hi hegyak,
There are lots of open source licenses, each with their small differences, but they can be put broadly in two categories: GPL-like and LGPL-like.
The biggest difference is that GPL requires all derivative works and code that links to GPL licensed code be also released under the GPL terms, so it's a viral license. If you want to modify and distribute the code, you must also allow other people to distribute and modify it under the same terms. LGPL is more permissive, you can link to LGPL code and make derivative works of it under a proprietary license, iirc the only requirement is that the EULA allows the user to reverse engineer and debug the software (which depending on the jurisdiction is a redundant requirement, in Brazil, for example, the consumer defense code is very broad and classifies a clause banning reverse engineering as abusive (since the user would violate the agreement if he/she tried to see if the program contained malware) and would make it invalid).
But remember that they're copyright licenses, so they only apply if the person who uses your code copies/distributes the software, if they only modify it and use it on their computer, you have no rights to enforce. For example, if someone takes your code, modifies it and runs on their server, they haven't distributed it, and you can't force them to release the source code under GPL terms. About derivative works, you can only enforce your rights if they copy a substantial amount of the code and fair use doesn't apply.
For example, most of our emulators are released under GPL, but we can't force people to "open source" their TASes by releasing the movie file, because the movie file copies very little from the copyright-protected work in the source code, only some bytes for their header. We can only claim violation of the license if the person releases a modified emulator without the source code, requests someone to sign an NDA to disclose the code for their modification, or tries to patent something implemented in the emulator code.
There's always the risk of someone forking the code, and changing some of it to remove the references to the original authors, and that doesn't violate the license, but it's very uncommon. I think the best way to prevent this is to use a hybrid license and release the code under GPL/LGPL, but the "branding" of the software (the icons, artwork and text of the about box) under a more restrictive license, requiring that unauthorized modifications remove all references to the original branding, so that it's more difficult for the person who forked it to steal your users, by making their software have a similar name.