Rotate camera arount a target

How can I rotate in 3D the camera around a target smoothly using mouse or touch?

Thank you Koei for your wisdom. Do you have over bank of examples like this to share?