Port numbers range from 0 to 65535. They are represented by two-byte word, and thus are represented as 00000000-00000000 through 11111111-11111111. Theoretically, you can use any of these ports as you see fit, however many of them are reserved for common purposes. For instance, port 80 is reserved for HTTP requests for web pages.
You can find an internationally recognized list of ports here, which is maintained and regularly updated by IANA:
If you read the first paragraph on that web page, it tells you a bit about the port ranges that follow.
If you scan down through the list, you will find ranges marked as "UNASSIGNED". These are the ones I choose to use when using port forwarding through my router for *ANY* software, whether it's for PCAW or otherwise - assuming the program allows its listening ports to be changed.
I use unassigned ports because if a hacker hits my router, and finds that some ports forward through to a live pc, he will not know what software is listening to those ports (because the program is not using its normal ports). Thus he will not be able to use known exploits against known software on a known port. This also holds true for most worms and viruses. They are written to hit a certain port, and if you change it, it foils them.
But for both of these cases, this assumes that a port scan is not used, and some kind of software-specific ping-like thing is not used to scan the ports to feel them out to see if Software XYZ is listening on a different port. If this happens and the software responds with a reply, the hacker or worm can continue doing whatever he/she/it chooses as normal.
I don't have any specific examples of this, it just seems logical to me. If anyone cares to shoot holes in my theory here, please do so, as I would like to learn if it's true or not, or somewhere in between.