You could use Atmel's AVR Studio, which includes a simulator that is useful for debugging. As long as you're using Windows.
There are actually quite a few IDEs for AVRs in general, that should work fine with arduino hardware. However, I don't think things are set up for the sort of advanced debugging features (jtag or debugwire. Although I guess in theory you could run debugwire over the ICSP connector.) The Arduino is pretty much a bare AVR, so in itself it shouldn't offer much to stop you from using Imagecraft, IAR, or ... whatever.
See
http://www.avrfreaks.net/index.php?module=FreaksTools&func=viewTools&q=&category_id=43