It is a common misconception that WinSxS is just a folder that holds currently used and redundant .dlls. For all intents and purposes, what the folder actually holds is the operating system.
"Redundant" .dlls are simply the most common reason for the excessive growth of this directory. Hard links are also responsible for the "growth" of this folder. For those who are not already aware, hard links in Vista/Windows7 cause Windows Explorer to drastically misreport the size of the WinSxS folder.
However, there are EFFECTIVE and simple methods for cleaning up WinSxS! A little use of the search bar and a "Y" are all you need!
MicroSoft has two tools for removing legacy components from previous major service pack levels. Keep in mind that using the cleaning tool makes it impossible to revert a service pack install so be sure all your major applications still function with the new service pack.
For Vista SP1 (as noted already by richardqt) use vsp1cln.exe by entering it into the search bar.
For Vista SP2 use compcln.exe by entering it into the search bar.
If you want to use the command line interface to use either program, both of them are installed to the c:\windows\system32\ folder by default and can be accessed by typing "cmd" into the search bar and using Right Click->Run As Administrator. There are some largely unimportant command line switches available if you fancy a short spin through the brief technet explanations provided below.
Hard links explained by the Windows7 engineering team:
Command line options for the SP1 Undo Uninstaller:
Command line options for the SP2 Undo Uninstaller (aka the Windows Component Clean Tool):
Keep Up with TechRepublic