The problem in both cases is to move the robot tool to some pose relative to an object. Let's assume the camera is attached to the end of a robot arm (eye in hand case) so we will consider this a problem in moving the camera. The tool will always be at a fixed relative pose to the camera.
In PBVS we uses a geometric model of the object, plus known camera parameters, to estimate the pose of the object relative to the camera. If we know the desired pose of the object relative to the camera it is straightforward to compute the error in pose and then plan a robot motion to correct it.
In IBVS we do not use or need a geometric model of the object, but we do need to be able to find some features in the camera's image of the object. The features can be the coordinates of points, parameters of lines or ellipses, moments etc. Let's take the simple example of point features. The position of the points in the image depends, in a complex way, on the relative pose between the camera and the object, ie. if you move the camera the points on the object move in the image. IBVS requires that we know where the point features are in the camera image when the camera is at the desired pose -- the desired point features. If the camera is not at the desired pose then the point features will be at different places in the camera image. IBVS takes the currently observed point features and directly computes the desired velocity of the camera that will move the points to the desired location in the image, and implicitly drive the camera to the desired relative pose.
There are a ton of caveats and extra details, but this is the gist of the difference between PBVS and IBVS.