Lossless Codecs
I'm going to link to a
thread at Hydrogenaudio.org for this one as this has been discussed pretty well.
Lossless codecs unlike lossy codecs like mp3, Ogg Vorbis, AAC, Musepack, and Windows Media Audio Standard and Professional do not discard any information during compression. Think of them like a zip or rar file only designed for audio and can be played back. Personally I've only used 3 of them and played back 4 of them. So I'll leave the long Pros and Cons to the HA.org page. Instead I'll go over the ones I know about, which are incindentally the ones most used anyhow. Unlike lossy codecs you can transcode from lossless to lossless with no penalty. You can't screw up a lossless encode so they're easier for newbies
FLAC (Free Lossless Audio Codec): Part of the Ogg framework like Vorbis and can be used in its own native container, .flac, or in the ogg container, .ogg. FLAC doesn't compress as much as some of the other codecs, but this is intentional. It has one of the best decode times which allows it to have hardware support in players like the Rio Karma and iAudio M3 and X5 as well as the iRiver H1xx series with Rockbox firmware. I would consider its compression to be average to above average, but it has very good tagging in the form of FLAC tags (which are 100% the same as Vorbis comments). FLAC's current version is 1.1.2 and is one of my two lossless codecs of choice.
Monkey's Audio (APE): This is another open source lossless codec that instead of boasting fast decode times instead boasts some of the best compression for lossless audio. However this pretty much means it will never have hardware support and currently Monkey's Audio can't do multichannel. This isn't an issue for CDs but if someone ever cracks SACD and DVD-A this means Monkey's wouldn't be the codec of choice. I would consider its compression to be far above average and excellent. It uses either ID3v1 or APEv1 or v2 for tagging (APE tags came from this format). Monkey's Audio's current version is 3.99.
Shorten (SHN): This is an older open source lossless codec that is still very popular in trading circles. It has good compression times but has some of the worst compression of the lossless codecs. Seeking was also a hack into it. Shorten could have hardware support but IMO FLAC is a much better choice as it is far improved over Shorten. The trading circles are starting to have FLAC show up more. I would personally consider Shorten outdated and its compression to be below average and has no native tagging.
WavPack (WV): This is another open source lossless codec that has impressed me a lot of late. Almost to the point of switching. It has better compression than FLAC nowadays, and also features a lossless/lossy hybrid mode. While this isn't unheard of WavPack is the only open source codec to do this AFAIK. WavPack's comprssion is slightly better than FLAC's (though it is getting even better) and it's decode is very similar. WavPack could easily have hardware support added one because of this. I consider WavPack's compression to be above average though not as much as Monkey's Audio; still better than quite a few lossless codecs. It uses ID3v1 and APEv1 or v2 for tagging. WavPack's current version is 4.31 and it has really come into its own since 4.0. WavPack is one of my two lossless codecs of choice and has hardware support in the iRiver H1xx series with Rockbox
Which one should you use? I personally would recommend FLAC or WavPack. FLAC is good but WavPack just keeps getting even better. All 4 of these formats have Winamp plugins and all can be played with foobar2000 out of the box I believe. There are also several proprietary formats like WMA Lossless and Apple Lossless but I've chosen not to cover them as I don't know as much about them. That is why there is the link to HydrogenAudio and why I included the graph.