There was a question on the Rhino group on LinkedIn about booleans failing due to "Non-Manifold" edges and just what that meant. There are two cases that fall under that heading, and in both cases if your model has them it means you've created a set of surfaces that could not in theory be turned into a real part(not by any conventional means like machining, rapid prototyping processes have their own rules.)
The first case, I'll explain using the simple case of 2D lines. Imagine you've got two lines that form a 90 degree corner, and a third that bisects the angle, so you have three lines meeting at one point. Rhino doesn't let you "Join" those 3 curves into one.
Now in the second case, imagine if you have something like a sphere with a smaller sphere completely inside it, not intersecting at all, and you try to "boolean" the smaller one from the bigger one, if it would let you do it that would also be a non-manifold shape.