In my experience, trying to fix a faulty mesh with Rhino's mesh tools will often generate more faults than it heals.
After much experimentation, I have arrived at the following method. It is rather tedious, but it is simple and it
works. It will give you an STL mesh with no naked edges or other horrors.
1. Join two parts together, using Boolean. (If for any reason the parts will not Boolean, this indicates a problem which you will need to fix before you proceed.)
2. Immediately create a mesh from the resulting combination (Mesh/From NURBS object).
3. Run CheckMesh. Disregard the first line ("This is a good mesh" or "This is a bad mesh"), as a 'good' mesh from Rhino's point of view will not necessarily be 'good' for 3D printing. If there are
any degenerate faces, naked edges or other issues listed, go back (ctrl-Z) and manipulate the parts until you get a result with zero problems. (The exception is 'Unused vertices' which seem to be harmless.)
4. Delete the mesh. (At this stage, it was only for testing.)
5. Save the altered Rhino model under a new version number, so that you can easily backtrack to an earlier stage if necessary.
6. Return to (1) and repeat until the whole model has been successfully joined.
7. Export the final mesh in STL format.
8. Run a final check on the STL mesh with NetFabb Studio Basic (free software which can be downloaded from:
http://www.netfabb.com/stl_repair_fixing.php). (I do not recommend that you attempt to fix a faulty mesh with NetFabb, though – better to go back and fix the original model in Rhino.)
Good luck!