you dont need to buy any special software. boot off of an ubuntu or fedora live CD and then you can resize the partitions with gparted.
I downloaded and created an Ubuntu CD. It let me change the sizes of the non-boot partitions, but it is not letting me make my boot partition any larger. I also tried the Unbuntu application gparted.