If the Arduino IDE isn't your preferred code editor, you really enjoy command line operations or you need to integrate the Arduino build process into another application, check out the inotool project. It's a command-line toolkit for Arduino hardware and supports all boards supported in the Arduino IDE and the latest revision sketches. At this stage the took is only supported in Linux and MacOS, and required python on the machine, however it's an interesting start. inotool will take care of the entire process including upload to the board.
If you're an experienced Arduino user and interested in more advanced Arduino projects and usage - get yourself a copy of "Practical Arduino" by Jonathan Oxer and Hugh Blemings:
Create your own Arduino-based designs, gain an in-depth knowledge of the architecture of Arduino, and learn the easy-to-use Arduino language all in the context of practical projects that you can build yourself at home. Get hands-on experience using a variety of projects and recipes for everything from home automation to test equipment. For more information and to order, click here.