Currently I'm using Rhino3D as CAD, and Vector CAD/CAM for CAM.
I started with SuperCAM, which used to be a DOS-based program. It does CAD, CAM, and machine control, and came with my mill. The CAD interface frustrated me to no end, so for CAD I eventually picked up IntelliCAD, which had an unlimited free demo at the time. I later bought a license for IntelliCAD, but stopped using it once I got Rhino.
If you're at all tied to an educational institution, McNeel & Associates (makers of Rhino) cut some incredible deals. An educational license in US dollars is something like $150. Commercial licenses are about $600, I think.
It's more than possible to hand-write G-code for CNC mills and lathes. Been there, done that, and for some jobs it's still the quickest way to bang out the parts. But it's hard to look at a CNC mill and not want to do something like contouring, where hand-writing would be painful at best and impossible at worst. There's all sorts of CAM software out there. Which one's right depends more on what you want to do than anything else.
If you're only going to need CAM software for contouring, something like MeshCAM would work well. If you're doing mostly 2D or 2.5D parts, something like... cripes, I can't remember the name! (Sorry for the lapse, it's not intentional.) In any case, if you're looking for more info on all this,
http://www.cnczone.com is a good place to look. It's an online forum for all things CNC.
Best of luck with your mill! And please do let us know how it goes.
Tom