Until Dynamesh came along, this was iffy to do inside of Zbrush, and still requires work in another app like Materialize Magics or meshlab. The most important thing is of course that the mesh is water tight. The fact that models derived from the primitives in zbrush always have a hole in them is due to the fact that the pole points are not welded. If your mesh was created with zspheres, or imported from another app, like a low res box model from Maya, then the chances are it is water tight.
The 1024 limit on Dyanmesh models has pretty much been handled by the new Clean Tool Master plugin. Check it out, it has worked fine for me so far. I found a work around before this plugin was available that has worked 100% of the time for me.
Say you have a model that is pushing 6 million polys, or you have a model composed of several subtools that you want to join into on continuous mesh. The first step is to duplicate your mesh, or use the merga all visible subtools button in the subtools menu. Make sure that you then switch to the duplicated mesh that is under the original mesh.
With the duplicate tool active, delete subdivisions. Move to the geometry menu and go to the Dynamesh tools. Crank the resolution up to 1024. Activate the reproject button. If your model is a hard surface model, aslo activate the polish button.
Create the dynamesh. Chances are, the dynamesh loses most of the detail. Here is the work around. divide the dynamesh one time. Move up to the project all button in the subtools menu. Make sure that the original mesh is visible, and the only mesh visible, and make doubly sure that the divided dynamesh is UNDER the target mesh. Hit project all. Now you have your detail back, and are assured that the mesh is water tight.
Now it is time to go through the decimation master tools, and the 3D print exporter plugin.
Your final product will probably still have issues beyond whether or not it is water tight. The best thing to do is then import your stl into a program like Magics or meshlab to do the final cleaning. Invariably there will be problems with flipped normals and other issues that can cause problems for printing like ghost shells and bad edges. Magics is insanely expensive, but meshlab is freeware.
This is a quick overview. It helps if you keep good modeling practices in mind as you work. Dynamesh is very helpful though. It has made doing a lot of things like creating a hollow shell super easy. Like everything, practice makes perfect.
Cheers