How can I disable a mob spawner without destroying it?
Mob spawners work on the basis of covering a small area (the wiki says it's an area 8 wide, 3 high, and 8 deep) with spawnable locations. If all possible spawnable locations are invalid, it won't spawn anything.
The following things will mark a location as invalid for the purposes of spawning a monster:
- Light level 9 or higher
- A solid block occupying the location (including half slabs and stairs)
- A lava or water block occupying the location
The following are considered valid:
- Air blocks at light level 8 or lower
- Blocks occupied with things that you can walk through (redstone torches, ladders, signs, etc.) at light level 8 or lower
All you need to do to disable a spawner is light the blocks that are affected by the spawner with enough light so that they can't spawn hostile mobs. The area that a spawner affects is a 3-high 8x8 area (the 8x8 area explained in this answer) – 3-high including the height the spawner is at itself, so two blocks above it. If you light this 8x8x3 area at light level 8 or above, mobs won't be able to spawn. (Alternatively you could fill it with a solid block or fluids, but light is easier.)