How to use an invisible emitter as mask for its particles? (Cycles)
If the emitter is always a plane then you can use the plane's Object coordinate to determine whether the particle material point is above or below the plane and use this to mix transparency as shown :



In the example image above the plane is set to be mostly transparent (so you can still see where it is) and the blocks extend above and below the plane by the same amount. The part above the plane has a positive Z coordinate (in the plane's object coordinate space) and so the Greater Than node controls its visibility.

Obviously this method will only work if the emitter is a plane and you want anything below the plane to be invisible (even it it would be visible past the edge of the plane).



For an uneven surface where you cannot determine the cutoff mathematically, you can produce the same effect by using the compositor Z Combine node to combine multiple render layers based on depth. This allows you to effectively mix the two layers together so that those parts above the surface are visible while those below the surface - and the surface itself - are transparent.

To demonstrate I created an uneven surface from Suzanne's face and added particles as for the previous example.



Setup the scene with two render layers, both with the Z-pass enabled. The first render layer should render the particles while the second just the mesh (create a duplicate of the surface and move it (M) to the second layer. For the surface to be transparent you should assign a transparent material to both of the meshes.

First render layer :


Second render layer :



In order for the transparent mesh to have an effect on the Z-pass, set the Alpha Threshold of the second render layer to zero. Don't forget to enable both layers by Shift-selecting in the toolbar or in the Scene section of the Render Layer properties.



The Z-pass on each layer should be something like the following :




Now in the compositor you can use the Z Combine node to combine the two layers based on the depth (Z-pass) of each layer - where the particle is closer than the surface it will be rendered as the particle. However, where the surface is infront of the particle it will be rendered as transparent. This is achieved as follows :



And here is the result :



Note that the checker pattern is only there to demonstrate the transparency.

Blend file included