Hi, I'm my LEAF2 engine I've implemented mirrors. I use OpenGL, but you probably could do it in D3D.
This solution uses the stencil buffer, its the basic algoritm, I optimized it later with scissor clipping and other stuff.

1¬? Disable any render state not needed to speedup (smooth shading, lighting, etc) and disable depthbuffer writing with glDepthMask(GL_FALSE).

2¬? Setup stencil.
This will fill a mirror shape in the stencilbuffer with 1's
glStencilFunc(GL_ALWAYS,1,1);
glStencilOp(GL_KEEP,GL_KEEP,GL_REPLACE);

3¬? Draw mirror quad, visible ou with color write disabled if you want.
It all depends of the type of mirror you need, transparent and such.

4¬? Reenable depthbuffer writing and setup stencil.
Only draw where stencil=1
glStencilFunc(GL_EQUAL,1,1);
glStencilOp(GL_KEEP,GL_KEEP,GL_KEEP);

5¬? Now this is the part to remove any ghost object that may appear from behind.
This basically is used to clear the zbuffer, but only where stencil=1
glDepthFunc(GL_ALWAYS);
glColorMask(GL_FALSE,GL_FALSE,GL_FALSE,GL_FALSE);
//DrawFullScreenQuad here
glDepthFunc(GL_LESS);
glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_TRUE);

6¬? The last part is to render the reflected scene with faceculling reversed.
Here I used glClipPlane to removed other ghosts that may appear.
To reflect the scene I use a mirror matrix transformation, constructed from the mirror position and normal.