There are a number of differences between the functions.
Activate() activates the product key, or if the key is already activated it re-activates the product key. Activate also re-activates if you remotely deactivated.
IsGenuine() doesn't activate a product key if there isn't already an activation. IsGenuine() doesn't re-activate if you remotely deactivated the computer (in fact, it de-activates the computer).
Does that make sense?
Also, we recommend using IsGenuineEx() for 99% of the cases because you can tell it how often to reverify with the servers (something Activate() doesn't have at all).