1. There's not really a good app(other than what's been posted here) for capturing co packets, mainly because of the encryption. You can use generic apps like WPE pro (make sure you get 0.9Alpha for NT/XP), Ethereal, Wirehsark etc, to capture packets but they're useless in their encrypted form.
2, 3. They are encrypted, nothing difficult though. There's a guide in the guides section on decrypting them, although said guide makes it sound more difficult than it actually is. Someone has probably already written an algorithm in your programming language of choice, so shouldn't be need to recode it.
The encryption runs on counters that start from when you log in, so you need to keep track of the number of bytes received from login aswell as the keys received at login.
4. Mainly the counters. If you try sending fake packets from a generic packet sender, the encryption wont allow you to resend fake ones etc, though some packet senders allow some scripting, it's simpler to make your own. Once you can keep track of counters and keys from client to server, it's very easy to intercept packets and fake what you wish.
5. Anything. You can send pretty much whatever you want as long as the server is capable of reading it. Packet crafting is a very descreet way of hacking games, because you can effectively make it undetectable to clients and rootkits, where memory hacking is much more detectable. If you know enough about the protocol, you can make your own client to clone the original and the server will have no idea you're using different.
It's also much simpler than memry hacking.