The Fritzing app is available for Mac, Windows and Linux, and as a source tarball (it's a Qt app written in C++). It's an open-source program (under GNU GPL v3) developed by Interaction Design Lab Potsdam, and buying from them supports further development.
Its main view can be changed between a breadboard view, a schematic view, and a PCB view. Changes in one are reflected in the others, which is pretty sweet. I designed my board in the schematic view, where I totally didn't have to worry about placement, just doing the right connections. Then I changed to PCB view to place the components and do autorouting. It was pretty crappy at first, until I figured out that the GND pins should not be connected, but just be marked as GND fill seeds. By then, it made the design below with just three vias.
|4-stepper-motor shield, autorouted|
Perusing the layout, I was able to not only remove two of the vias, but also make it prettier:
|4-stepper-motor shield, final layout (w/o copper)|
Since this was a fairly simple diagram that just happened to have a lot of wires, I didn't use the breadboard view at all. Maybe next time. They also include a lot of elements to use on the boards, here I used an Arduino block to get the correct placement of the shield (including the slightly too small gap on the right side that Arduino is now stuck with).
I don't know how this program compares with other similar ones available, but I quite enjoyed this. It took me a couple of hours to get used to how it worked and design this board, not bad for an inexperienced designer. The boards can be ordered from within the program, and they make them with a very nice white coat and black silkscreen. I want to make more of them!