z4root (2.2 and below) and gingerbreak (everything else) are what I have used to root my device as well as assist other people. If you are going to do custom roms make sure you back up your current one with clockwork, titanium backup, or something similar, i am stuck in a leaked version of motoblur unless i want to do a whole lot of extra stuff to go back to stock.