As far as I know, UPX is the de facto standard for .exe packing. It's used in both commercial and non-commercial applications. I'm not aware of any others that are in wide use.
In terms of encryption, I don't think there's any good way to encrypt a program. The key to decrypt the program would have to be stored or retrieved making it vulnerable to decryption.