Running it inside of eclipse is a huge help: you can change code on the fly (no restart), integrated debugging, etc.
Many of the devs here use the sysdeo tomcat plugin:
http://www.sysdeo.com/eclipse/tomcatplugin
My configuration looks like this....it might not all be necessary, but this is what is running on my box:
Windows/Preferences/Tomcat:
Tomcat version: 5.x
Tomcat home: \opt\zimbra\tomcat
Configuration file: \opt\zimbra\tomcat\conf\server.xml
Windows/Preferences/Tomcat/Advanced:
Tomcat base: \opt\zimbra\tomcat
Add Java Projects to classpath: ZimbraServer is checked
Windows/Preferences/Tomcat/JVM Settings:
add [ZimbraServerPath]\conf to the Classpath
Windows/Preferences/Tomcat/Source Path:
ZimbraServer is checked
Note that there is a problem with the build.xml "deploy" task and the eclipse plugin: if you use the deploy task (or reset-the-world which calls deploy) you will need to stop and restart your server b/c of an issue with the SessionCache class not being properly reinitialized.