I'd go with a rabbit, but it's mostly because GPs are too noisy for me. Rabbits tend to be a little bit smellier, especially if you have a male, but you can litter train them so they don't go all over the place like GPs. Bunnies are usually bigger also, easier to cuddle with.
I wouldn't get a ferret. They stink! Even if you clean up their poo/pee as soon as they do it and bath them daily (which you wouldn't want to actually do), they still stink. I lived with a couple girls in college that had two, and even though they took excellent care of them, they were just too smelly for me.