Personally, I'd use Asymptote. It comes with most TeX installations, and it has native support for 3D objects. It can even embed them into the resulting PDF file in such a way that the users can rotate them, if their PDF viewer supports this.
I know many people prefer TikZ over Asymptote. To my knowledge, both tools are comparable in their expressive power, but use very different syntax. Asymptote is more like C, TikZ more like TeX. I don't know about the extent of native 3D support in TikZ.
The benefits of both these tools are that you can easily embed the resulting graphics into a TeX document, and have the fonts and everything matched between text and graphics. If that is not an objective, you can try other tools as well, ranging from general-purpose vector graphics editors like Inkscape through function plotting tools like gnuplot or dynamic geometry software like Cinderella or Geogebra to the graphics output facilities of computer algebra systems like Sage or Mathematica. It depends on how you want to specify the object, how interactive you want the creation process to be, and how much post-processing you are willing to perform on the generated image.