Looking at the new samples on the creators.xna.com I see they have an example for using virtual thumb sticks in a Windows Phone 7 game. I like it, but I decided I wanted a version with the thumbs sticks fixed in place, much like you'd see in an iPhone shooter like Call of Duty: World at War: Zombies. Here's a screen of the result.
The first thing I decided was to not make the Virtual Thumbstick class static, but instead a DrawableGameComponet. While not consistent with other XNA input implementations, it allows you to add one or more thumbsticks to the list of components and let them load, draw and update without calling any methods. You can simply look at the thumbstick position, see if it's greater than zero, and determine what to do with it when it is.