What is the best experience to use for a photo tagging feature? to view tagging when we hover on the photo? or having a separate button in the photo page that calls for tagging ?
The best photo tagging experience is no tagging: when the photos are just "magically" tagged correctly, either by a program or by someone else.
Then comes the first fallback. community tagging.
It depends on the context wether tagging mode should be enabled by default or not. I guess if showing already tagged items is on by default, then tagging mode should be default as well on desktop interfaces, where hover mode actually exists.
You could, for example, show a frame around untagged faces on hover and say:"Who's this?" instead of a person's name.
On more and more prevalent mobile and tablet (touch) interfaces however, there's no such thing as hover: here, accidental taps could happen, so tagging is better left off by default, except when the whole application is mainly about tagging.
But no matter which mode you choose, it's always recommended to make computers help people: even if a computer cannot recognize a face for sure, nowadays we can more or less recognize where is a face. Therefore the computers can pre-calculate the rectangles where it is likely that there's a face.
I think honestly it depends on the kind of website or program you're trying to run. If the tag depends on a specific subject in the image that the viewer could not otherwise identify such as a face, or a type of fruit that isn't common knowledge (etc) then I think the hover tagging is essential. Otherwise if it's to denote a general mood or general subject matter such as a Yosemite park or sorrowful, then the button is more helpful. You might find that your users value both, as the general tags can be very useful for sorting.