Second question is easy: optical flow, more specifically dense optical flow, is an algorithm that takes two consecutive video frames and returns a vector field. For every pixel in frame 1 you get a vector showing where it moved to in frame 2. You can also have sparse optical flow, which only computes the motion vectors for certain pixels, such as the feature-based approaches you've mentioned.
On the other hand, image registration is the general problem of aligning two images. The problem of image registration can be solved using an optical flow algorithm. However, it can also be solved by other methods, such as template matching or phase correlation. Optical flow, on the other hand, can be used to solve other problems, such as detecting and tracking moving objects.
The first question is less clear cut, because there are situations when either approach will work. However, generally intensity-based methods are not applicable in the presence of a large scale change or a lot of motion between the frames. Also, intensity-based methods tend to be slower.