Arduino + Lego NXT

..Are you aware of any other method?

To do it right, it sounds like you need an accelerometer, too. David Anderson provides a pretty detailed description of how he did this on his nBot web site

He explains, "The gyroscope and accelerometer are combined with complementary filters to provide an inertial reference sensor. The ADXL202 accelerometer provides accurate static tilt information, when the robot is not accelerating. The gyroscope can be integrated to provide accurate dynamic tilt information, but the integration tends to drift over time. Combining the two sensors provides a robust inertial measurement."

But, there are apparently a number of different ways to make a balancing robot. I've heard of at least one person who managed to do it using distance sensors to figure out the tilt based on the distance of the sensor to the ground.