The File Output Node is exactly what you are looking for.
Unfortunately the documentation does not mention how to get it to output to different subfolders, but thanks to sambler you can have each file go into its own folder.
The settings for the File output node are in the properties region, press N to open it. Such things as file format, compression, the input's name and adding inputs are all only accessible there.
To add outputs to the file output node click on the large "Add Input" button.
Now you will have to add a slash (forward or back slash, does not matter on windows) at the end of the name of the input, like in the image below. For example, to have all your AO passes go in am AO folder you would name the input "AO\", or "AO/" (I use the backslash for consistency in windows file paths).

Or you could use a separate file output node for each folder you want to create. I have not noticed any difference in performance.

During the compositing stage blender will automatically save all the files specified in the file output nodes.