Just like Sayse said, I would use The KeyboardState.GetPressedKeys() method and they will return the keys pressed. I think you can check to see if this is null (untested);
while(currentKeyboardState.GetPressedKeys() == null)
Something along those lines you could create a screen (like in battlefield, or CoD) that says "Press key to assign to Forward". Once the user presses a key, you could store the enum. Write the enum to the registry or something like that.