That really depends on what you need the software to do! For projects that focus on basic, low-resolution 3D printing--such as printed items made out of plastic filament, resin, or wax--then all you need is a basic 3D modeler or slicer.
If you need a 3D modeler, many free and open-source options are available, such as SketchUp and Blender. SketchUp is the more user-friendly of the two, but Blender is more versatile and feature-filled.
For slicing your 3D model into layers ready for printing, you can try open-source programs such as Cura or Slic3r. They have a steeper learning curve than SketchUp or Blender, but offer more control over the printing process. Many commercial 3D printers also have their own slicers with additional features.
For medium-to-high-resolution 3D printing, you'll need more powerful software and hardware. If you want to create metal objects, you'll need any number of specialized 3D printing metal powders. For these, you need a specialized industrial software and hardware, such as those from ExOne or Voxel8.
To summarize, the software you need for 3D printing will depend on what type of project you have in mind, and how far you need to go in terms of resolution and complexity. If you're just starting out, there are plenty of free and open-source options available. But if you need to create complex industrial parts, you'll definitely need more powerful and specialized hardware and software.