Compilers

Image Craft C CodeVision C GCC Bascom RVK Basic

Which C compiler should I choose?

Written for AVRFreaks by Adam Johnson my comments in italics.

Those users who are programmers who also do hardware will likely prefer Imagecraft C. It behaves most like any other (especially windows) C compiler that you are likely to be used to. The professional version with it's additional options is probably the most powerful compiler previewed here, and if IAR compatibility is necessary then Imagecraft is your best choice.  Time limited (30 day) evaluation available.
Hardware people who also do programming will be more likely to like Codevision. It eases the strain of programming hardware for people who just want it to work without getting too involved in how, so long as your hardware is supported by the default libraries of course. Probably the best choice for those who are not yet 100% comfortable with the C language.  Code size limited evaluation available 
GCC is not for the faint of heart, but can be made manageable for those on a budget of nothing squared. It has some slightly more quirky ways of doing things, born of the fact that GCC was not originally written for programming microcontrollers, but these are not difficult to get used to. Not recommended for people who aren't already comfortable with the ANSI C language, as well as being happy with managing their own projects and makefiles.  Completely Free!

BASIC 

Bascom - Commercial BASIC compiler, "Structured" code
RVK Basic - Free, Very basic BASIC 

Assembler

AVR Studio  - Atmel's official  assembler studio and programmer all in one.