Per default Android limits certain access to hardware on the phone for programmers / app makers.
'root'ing means that the whole android experience on your phone is running as 'the administrator who can do everything'. So now applications have access to the SD cards for example, or read the SMS database, and access the power management and processor for tweaks. That kind of thing.
'root'ing is needed for a lot of 'tweak' apps, but also for running custom ROMs I believe.