Software is, of course, what makes the hardware work. It's also the most frequent source of aggravation. There are three different phases to using what is loosely called CNC and consequently at least three software programs to master. The first is the design phase - Computer Aided Design - where you capture the drawing information. The second phase - Computer Aided Manufacturing - turns your drawing into instructions for a machine tool to follow. The third phase - Computer Numerical Control - interprets those instructions and moves a cutter around on a workpiece to create a part. 

Aside: I'm a Linux user for a number of reasons. As a result, I tend to prefer Linux based solutions when they are available. I also try to be practical about my choice of tools. Ease of use and availability of features that I need sometimes means I'm using Windows.

Here's what I've been using, and what I've found, in the way of software.

CAD - Computer Aided Design
2d CAD
Alibre Design - win (xp)  Solid Modeling Software - Xpress (2d drawing free) - (win, linux under VM) see also 3d CAD
QCad - win & linux [RibbonSoft] - source for older version released under gpl - in Ubuntu repositories.
3d CAD
Alibre Design - win (xp)  Solid Modeling Software - 3d package was offered at the end of 2009 at a significant discount. ($200)
Art of Illusion - linux & win - mesh based 3D modelling and rendering studio
GraphiteOne - linux - 3d basic package is free but restricted
HeeksCad - linux & win Free CAD based on Open CASCADE - HeeksCNC is an add-on for HeeksCAD
progeCAD - win (xp) Smart version is free! - progeCAD Intellicad tutorial -
Sketchup - Google 3d - basic free - pro $500
Vectric - (win) VcarvePro $599 - Cut3d $299 - Cut2d $149 -cam software, can also design
I used to use Autocad, and still have a working version of the Autocad "Lite" package from way back. I've used QCad as an autocad 'work' alike. I looked at a lot of  3d software before spending the money on the Alibre package. I evaluated progeCAD for a while but it's workflow/methodology was difficult for me to use. GraphiteOne became available too late for me as I had already made my Alibre purchase. At this point I'm doing most of my design in 3d. It's easier to catch my mistakes there. I still knock off a quick or simple design in Autocad.

CAM - Computer Aided Manufacturing
CamBam - free version - from the brusselsprout web page - purchased version has more features. - Python script - from the MIT FabLab creates G-Code from .svg,.dxf,.cmp,.sol,.plc,.sts,.stc,.gtl,.jpg files.
DAK Engineering - Ace Converter (DXF to G-code - win, open src)
FreeMill - free version simplified - .stl to gcode, cannot separate features to mill or not mill. good for 3d contours
Vectric - (win) VcarvePro $599 - Cut3d $299 - Cut2d $149 -cam software, can also design
I've used the free version of CamBam to convert .dxf to Gcode. There's not much out there for free CAM software. HeeksCad looks promising as it has it's own CNC plugin but until it can import geometry from other sources I won't be able to use it.

Computer Numerical Control
EMC2 -Enhanced Machine Controller- linux based CNC - ubuntu pkg available
Mach3 - Artsoft $159 win CNC software - also lazy cam (beta)
ReplicatorG - open source machine controller - Ardunio Gcode interpreter - RepRap page
I'm using EMC2 to control the cnc router I built here. The RepRap Ardunio Gcode interpreter might be an option. As I understand it, It is based on the EMC software moved into a microcontroller. I don't know what step rates it can achieve.

General Sites
CNC Zone - OpenSource Software Thread
EMC wiki - List of software programs
FreeCAD - free CAD, CAM and CAE programs
You can use google to search but you typically get a lot of hits and not much usable information. The number of sites I've looked at would fill three, or more, pages. Most of it is very expensive. If you are a college student or a recent graduate you might be able to purchase software at the campus bookstore at a reduced (student) price.

What Speed Home EMC2