Most PCB layout software exports in Gerber format. Included in that is a an Excellon Drill file that defines all of the drill sizes and locations. Several program import Excellon. SheetCAM (
www.sheetcam.com) imports them and the tool changes (drill sizes and een sets up a matching tool table automatically.
If you use chemical processing then you drill, then use film on the resist coated board. You can also use the iron-on type toner trasnfer method for a positive resist method. The actual routing of boards is a little more complicated. You need to get from the Gerber of the traces to a DXF. DeskPCB does that easily and while it will give you g-code directly I just take the DXF and move it to SheetCAM and register the holes and route paths on the screen and do both operations from one package. I can hold 12 mil lines using the router methods (runs between pins) but you need a VERY flat surface and material or a floating head with depth control nosepiece. The best tool for doing fine work is a 60 deg carbide rotary cutter made for cutting fine lines. You have to be able to precisely control the depth of the width of your runs will vary from nothing to shorts.
I don't recommend the milling method for double sided (although it can be done with registration pins). On any double sided board there is the problem of no plated through holes and using wire layer jumpers or component pins solder on both sides.
For first protos I will layout the board and let it route and use jumpers for the top layer connections (if your PCB layout will do that). Then when the circuit is up and running I use the same schematic and let the auto router have both sides. It then goes to the prototype shop. You can get 5 boards with plated holes, soldermask and silkscreen for 15 to 20 each.