Rooting: What is it and how to do it
Rooting is the process of allowing certain apps to gain 'root' access to the system. Android is based on Linux, the computer operating system. And in Linux the 'root' user is allowed to modify and access all system files. Rooting your Android phone isn't a feature that comes with Android, it's exploiting the way the system works.
So when you root your phone, you're allowing certain apps to access and/or modify system files. Which apps need 'rooted' systems? Well there are a wide variety of apps that need root access:
Titanium Backup - one of the most popular root apps on the Market, this app uses it's root permissions to backup and remove system apps/apps that come preinstalled with the phone that nobody wants.
SetCPU - another very popular root app which allows you to overclock your phone. (Definition of overclocking here)
MyBackup Root - an app that uses it's root permissions to 'backup' your apps, data, and settings to your SD card so that they can be restored if anything happens
Root Explorer - another popular app that allows you to dive into the system files of your phone and modify/access them. Also allows you to access what's on the SD card of course.
Am I already rooted? Well if you installed SwiftDroid or OpenSwift then yes, you will already be rooted. If you see the Superuser app installed on your phone, then yes, you're rooted.
So if you decide that you would like to root your phone, here's how to do it:
Download z4root from here
Copy the file to your SD Card
Use file manager app to locate and install the app
Go to Settings>Applications>Development>USB Debugging and enable USB Debugging
Open the app from the app drawer and select 'Permanent Root'
The phone should now root and restart, and you will see the Superuser app in the app drawer
When you open an app that wants root access, a superuser request will appear. Superuser is an app that allows you to control which apps are allowed to have root permissions or not. When the popup appears, you can choose to allow the app root permissions, or deny it. If you deny it, then the app will have limited or no functionality.