Since your goal is 3D printing or CNC machinging I would say you definitly want a "Solid Modeler" type package. I prefer SolidWorks personally, In my experience it's the defacto among small to medium sized manufacturing shops that keep up with the times, Pro-Engineer is popular too. AutoCAD seems pretty popular among shops that are a little behind the times.
Larger companies (Auto and Aerospace manufacturers) tend to use packages such as Catia, but that's way overkill (and way out of budget) for 3D printing and the like, it's more suited to massive assemblies with thousands or millions of components. Solidworks isn't without it's faults but I find the interface fairly intuitive once you learn the basics and it's perfect for small-scale stuff. I've used it many times to design small components and assemblies for car and computer projects among other things. Most professional software solid-modeling packages can export to whatever format you'll need for your 3D printer, CNC software, or whatever it is that your manufacturer requires.
You want a solid-modeler like Solidworks/Pro-E/Catia/etc because they're all designed with dimensional accuracy in mind. Surface modelers are generally used for 3D graphics production and have a higher concentration on making things look good than being dimensionally accurate. It's like the difference between MS Word and Adobe Photoshop... if you want to write a book, Word is probably the better software, but if you're designing a poster, Photoshop is probably the better choice... both create "documents" but they have very different uses... similarly if you need a 3D design software for manufacturing or real world production you want Solidworks, but if you wanted to make a 3D move or game Maya would be a better choice.