gparted can resize partitions and it comes on a bootable livecd:
http://gparted.sourceforge.net/
Note, you will need the live cd since you can't resize on a live, running system. Here's some specific instructions on using gparted to resize a partition:
http://gparted.sourceforge.net/larry...e/resizing.htm
If you have some external storage or space on another internal hard drive, I'd back up your root partition from that gparted livecd using tar:
# cd <mount point of root partition on livecd>
# tar -czvf <path to partition that will recieve backup/filename_of_backup.tar.gz> .
Note the trailing period as it will not run without that.
Resizing with data on a partition is the highest risk partitioning operation with any partitioning tool so it's always best to backup first.