RE: C?

Good:
Hitech C http://www.htsoft.com
Bytecraft http://www.bytecraft.com
IAR: http://www.iar.com/ (not sure about their PIC compiler, but their 8051 stuff is pretty good)

Cheap:
CCS http://www.ccsinfo.com
FED C http://www.fored.co.uk/

Free:
CC5X http://www.bknd.com/cc5x/index.shtml


These are only the ones I know about or have had some experience with.  I use Hitech and I'm very happy with it.
Note that good and cheap are not always very compatible goals with emmbedded compilers.

Mike