When you create your device, you usually create a "back buffer" with it. This "back buffer" is a "render-target".
You can also create your own textures that are also "render-targets".
As mentioned above, the SetRenderTarget function determines which render-target you are currently drawing to.
You can use SetRenderTarget to start drawing to your own texture.
Then you can use SetRenderTarget to start drawing somewhere else, and at the same time also use SetTexture to bind the 1st texture to one of your sampler slots, so you can read the 1st texture and ouput it to the new render-target.
Ah, i see :] However, would creating a lot of render states slow down my program significantly? if my render states have to be textures that are 1920 / 1080 pixels won't that be bad for the graphics card? Like, how bad would 10 be every loop for the average consumer do you think?