As long as you are the author you can release the software under whatever license you want, as many times as you want. You can release it under GPL one day, BSD another, and FOOlicense the next. However, if you release it under GPL and receive patches/changes from someone else you can't just change the license on the enhanced software because you are no longer the sole author and a portion of the work not written by use has been forced to be under the GPL.
One workaround for this is to release the software under GPL and some other license from the start. Then you could claim that any patches that don't explicitly specify the GPL apply to the non-GPL'd version. Unfortunately it is extremely easy to come up with conflicting licenses. (What happens if you release software disallowing some part of the GPL, and then someone writes some GPL'd patched to it? The whole thing can't end up under GPL because you, the original author, specified a different license. The whole thing can't be under your license because the patches are GPL'd. So you end up not being able to use the enhancements.)