The Software. Now this is where things get confusing for me. CAD this and CAM that. I have successfully milled some parts, but I've not yet figured out all the bits.
For the CAD software, I stick with Google Sketchup. Sketchup is a really amazing product. First, it's free. It is 'easy' to learn (for a 2D CAD package, anyway). There are a lot of great tutorials available. I used Sketchup to create all the CAD drawings for building the router, and all the drawings I posted to this blog. Since it's free, you can get your feet wet while preserving some cash.
For the CAM software, I am playing with the demo (40 uses) version of CamBam. The CamBam website says it best: "CamBam is an application to create CAM files (gcode) from CAD source files or its own internal geometry editor".
There is also a free add-in for Google Sketchup that will cleanly export a Sketchup drawing into a format ready for CamBam.
Take some time to read the three-part software tutorial by Patrick Hood-Daniel on his buildyourcnc.com website.
There is a lot to learn about the CAM software, and I'm only just starting. I've found the CamBam documentation to be very weak, almost useless. I did most of my learning by trial-and-error.
For the machining software, I am using EMC (Enhanced Machine Controller). From the EMC site: "EMC2 is software that runs on Linux, on most standard PCs, that can interpret G-code and run a CNC machine." In my case, I use Ubuntu. I had an extra PC, the EMC software installed and ran first time, no problems. EMC plays perfectly with the HobbyCNC stepper driver board.
On a side note: If you have not considered a Linux system, Ubuntu 10.0.4 is amazing. It is quite Mac-looking, fast-as-hell, robust and stable (my server ran for well over a year with zero issues). And with a product called Wine, you can run most windows applications. It's pretty sweet.
I do suggest you use a separate computer to drive your router. It will suck in dust and crap like you won't believe, and you'd hate to trash your home PC. I open my PC regularly and blow out the collected dust and debris. One challenge, is finding a PC with a parallel port, which is required for the HobbyCNC stepper controller. Most new laptops don't have a parallel port. My Ubuntu system had no issue accepting a parallel port card, tho I do remember having a challenge finding some I/O port address or other. But once I figured that out, all was well.
I hope to give some tutorials or other helpful guidance on getting these three products playing together nicely, but time is a rare commodity at the moment.