How can I make an object appear or emerge from a flat surface?
If both objects are manifold and don't have any self-intersections, the boolean method should work.
However, booleans are sometimes finicky for no reason, so here's another approach:

Move the object you want to appear to a empty layer (e.g. layer 2), keeping the rest of the scene on layer 1

Make a bounding cube as if you were going to use a boolean modifier, but instead give it a holdout material which is only visible to the camera (so that it doesn't cast a shadow):


Create a new renderlayer and set it to only layer 2. Also change the existing renderlayer to only layer 1:


Enable Transparent in Render settings &gt; Film

Set up the composite nodes



Result:

The shadow is an obvious limitation, but I can't think of a good workaround aside from just removing the shadow completely..