A long time ago at NI Week I remember seeing a (at the time non-moving) version of BallBot. The idea is simple - instead of driving wheels forward or back like a Segway does to stay balanced, use motors to spin a ball that the entire robot balances on - in both horizontal directions. The only solutions I've seen to this in the past have been significant sized robots, with rather complicated control systems, and I wasn't at all sure it was within the reach of the NXT, with the comparably low-speed sensor polling and the way the motors are controlled indirectly (not from the main chip, but from a secondary processor.
I'm happy to say I was dead wrong.
Here is a rather modest little LEGO robot doing an amazingly un-modest thing: balancing itself upright on a LEGO ball, even when bumped or having things stacked on top of it. The builder/programmers webpage is here, with some other amazing works on it (several have been covered here previously). The only input the robot (and here I'd certainly use the term) is using to remain upright is two HiTechnic gyro sensors, (one for each axis), with the programming in nxtOSEK and MathWorks MATLAB. Truly an amazing creation!