I use CadSoft Eagle (http://www.cadsoft.de/) to design PCBs and I really love it. After a long time of drilling PCBs by hand, I realised that Eagle can output an Excellon drill file which contains all the position and diameter information required. However, this needs to be converted into a G-code file suitable for running on the CNC router. Additionally, home-made PCBs are always a little bit squint/scaled because of non-linearities in the transparency, if it's made on a laser printer. If nothing else, it's impossible to mount it perfectly square on the router bed anyway. This little program does two things. First, it measures the amount of skew and scale distortion in the actual PCB board, based on measurements performed with a webcam and crosshairs. Then, it reads an Excellon file and spits out a G-code file which is corrected for all distortion. You can specify drill depth, speed, and retract height.
I've used it a couple of times and it works pretty well. It's only really worth it for large boards - small boards can be drilled manually quicker than setting up the CNC machine!
26/11/13: See here for an example and video of drilling in action.