If I understand, you want to get the depth of the pixel, and store it in a rendertarget ?
This is a basic in deferred rendering. Just use a vertexshader to get the positions of the pixel (pos = input.position * WorldViewProj), and in the pixel shader, return the value of pos.z/pos.w (if you don't use linear depth)
the rendertarget must be format.Single to provide enough precision.
in the VShader:
float4 worldPosition = mul(input.Position, World);
float4 viewPosition = mul(worldPosition, View);
output.Position = mul(viewPosition, Projection);
in the PShader:
Depth = input.Depth.x / input.Depth.y;
In the case you wanted to load a texture and assign it as depth to the GPU...
You can do this by passing the texture to a pixelshader, and the pixelshader could read its value and write it like this:
void mypixelshaderfunc (vsoutput psinput):DEPTH
float currentdepth = Tex2D(psinput.texcoords);
Your texture needs to be saved in a format allowing to store enough precision though.
http://www.catalinzima.com/xna/samples/other-samples/restoring-the-depth-buffer/ can help you to find more ideas.