GenuineFeaturesChanged is one of the value of IsGenuineResult. I want to know what is its purpose from the point of view of a programmer.
It just means you, or someone at your company, changed the custom license field(s) for that product key.
I mean when and how I can use it in my program?
If you're using custom license fields, and you've already loaded and used the values from the fields, then if you get the GenuineFeaturesChanged, you might want to reload any custom license fields that you've already loaded (because, of course, they've changed).
Is there a possibility that the Features (license field values) are tampered on the user's computer?
They can't do that. If they change the custom license fields stored in the activation data then they'll no longer be activated. Read up on the cryptographic signing used in LimeLM.