IAR is for AVR what keil is for 8051
Imagecraft and Codevision are commercial ones (good but less powerfull then IAR)
gcc is gcc (you love it or you hate is (or you don't know how the hell the damn thing works).
i think the best c compiler for avr is iar's. but you know it is no free like gcc. due to this reason i am using gcc. it is not efficient as iar but the diffrerence is not much more.
i'm uploading a performance test about avr compilers, i wish this can help you.
note a: iar b:icc
I agree IAR is the best. But I used it in conjunction with codevision with HPinfotech. Codevision has an excelllent wizard to generate the initailization code!