It's a good question. Let's start with some pro's:
- You can modify your device in anyway you see fit.
You can install custom ROMs (which are custom builds of Android)
You can install updated versions of Android (there are some ICS ROMs available, for instance)
You can install custom kernels, that tweak/improve the performance of your phone.
You can install custom themes, that give your phone a new look.
You can run root apps that give you a lot of additional functionality. Like block ads, backup your apps w/ data, overclock or underclock, get rid of bloat ware, etc
And more things than I can think of right now
The cons are few, but should be considered
1) It partially voids your warranty.
It's not a complete void. The carrier/manufacturer has to be able to prove that what you did with root caused the damage. The only case I've heard of that rooting has caused damage like this is if someone burned up their processor by overclocking.
2) You have a small chance of 'bricking'.
It's a very small chance, but a chance none-the-less. There are a lot of tools to recover a device that has issues. Most of the time it is a simple fix to get a device up and running again. It's why we always recommend making backups.
3) Sometimes it requires trial and error...and patience.
Especially when installing your first ROM. There are a lot of reading material (I have my own guide written on this subject) that will show you how to do it properly. A lot of the mistakes newbies make is that they rush into things and miss a step (and nearly every step is critical) and then they have problems. Reading the available material helps cut down on that.