A common issue with older Moen shower faucets is only cold, or only hot water coming out of the faucet or shower head. This often happens with showers that are not used very often, or where the water supply is particularly hard or has high levels of contaminants. If you search the web for help, the most often suggest is to replace the main cartridge (part number Moen 1225 or 1200). However, this is most likely not the source of the issue.
If you remove the shower faucet knob, and remove the cover behind it, you should see something like the image below. This is a Moentrol 3570 valve, there are other similar model numbers.
Within the valve is what is called a balancing spool. This balancing spool valve contains a piston which moves back and forth maintaining a given temperature even if the pressure on the cold side is reduced, for example someone flushes a toilet when the shower is in use. It prevents a sudden blast of hot water which can lead to burns. When you suddenly experience only the cold or hot water flowing regardless of where you set the flow handle, this valve is almost always the culprit.
The piston which is inside the balancing spool will get stuck in one position or the other. When this happens, it essentially shuts off flow to either the hot or cold side. Poor water quality and age will eventually cause the piston to get stuck in its bore. The balancing spool (part number Moen 1423) can be seen clearly in the photo below.
The first step in repairing the balancing spool valve is to remove it. You will need to use a VERY large screw driver to unscrew the valve (number 2 above). Make sure you shut off your water first! You can also use a straight-edge piece of metal clamped in vice grips if you do not have a large enough screw driver. Spray the outside of the screw with Liquid Wrench or other penetrating oil in advance of your attempt, it can be difficult to loosen. If you are lucky, the valve will come out with the screw. But, most likely the top of the spool will separate, like in the photo below.
If this happens, you will need to retrieve the stuck piece. The way that I accomplished this was to soak it in Liquid Wrench for an hour before my attempt. I inserted a screw driver down into the piston and tried to lever it out, tapping with a hammer at the same time. I then bent a piece of metal rod into a hook shape and fished it inside and caught it against one of the holes in the body of the spool. Using a pair of vice grips I pulled until it came loose. This may take some work, so be patient.
Once removed you have two options, replace with a new one, which is not cheap, retail price is between $55-95.00. Or, you can usually successfully clean the spool. To do this, remove the round piece of metal at the back of the valve (seen above). Just slip a small screw driver into the gap and twist it out. Then tap the piston out of the bore. I used a socket to support the back of the spool, and used a hammer and screw driver to tap it out.
Next, you want to use fine sandpaper to clean off the piston journals, and the inside of the bore of the valve. Get aggressive, you want the bore and journals to be polished clean. Work the piston back and forth in the bore until there is absolutely no sticking or binding. Then apply plumbers grease and reassemble. Turn the water back on and test the faucet, you should now have hot and cold water, and just saved yourself a couple hundred dollar repair bill.