For what I think you want to achieve, I think the simplest/best way is using shaders.
Modifying the pixels in a shader is much easier (and efficient) than having a dual set of assets, with the alpha map masking out the colored assets (or any other way of doing this that comes to mind). You could of course pre-process the assets to make them grayscaled, etc.
Now, I think the pay-off of using shaders and playing around with it might give you a lot of freedom to create interesting looking effects, without worrying much at all about how this affects your assets and structure.
Disclaimer: I haven't used xna, so I don't know how cumbersome it is to use shaders here.