Although most answers in the 3D modeling area are going to be software dependent, the basic modeling principles transcend software. On the other hand, CNC/CAM is largely equipment dependent -- the production equipment defines the appropriate interface software. Converting your 3D model into a production ready fabrication format is the remaining key component.
I do mechanical engineering design, so prefer nurbs, due to the exact mathematical representation of my 3D parts. Plus, the inherent smoothness of the surfaces works very well when crossing into the CAM world where MasterCAM interfaces with all of our CNC mills, lathes & cutters. I'll convert into the mesh world when I'm doing some critical part design & need to optimise against stress analysis results. Converting from nurbs to mesh is very easy, whereas mesh to nurbs is less so & inherently introduces some error (compared to the exact mathematical representation the nurbs have). Increasing mesh density yield more accuracy at the expense of larger models & compute time.
Also, sub-dividion surface modelers like Blender are quite interesting, but I have no experience trying to use them in a production or prototyping environment. I am aware of some services which will do 3D printing from Blender models.
However, the basic modeling techniques are similar, regardless of what software you're using -- Boolean operations are the same anywhere. Building an actual part from additive processes (like selective laser sintering) is different than subtractive processes (like machining), but the models you feed into the fabrication machines are no different.
I have been working in the sector of CAD/CAM relevant to mechanical engineering application in Nepal. Particularly, I used Solidworks, CATIA V5 and Pro- Engineer Wirefire 5 for my application works. Apart from it I have been using RPM machines for CAM applicatiins.
My skill can be useful in case you want its applications in developing complex geometries.