If he's moving away from you or toward you it's easy.
The trick is when he's going in the cross-wise direction.
Let's say you're a Coast Guard cutter and spot a suspicious
vessel that is distance D away and moving at V knots on a
heading perpendicular to the line between your two boats.
Your boat can do W knots (W>V) at full throttle.
I would use a fixed coordinate system to keep things simple.
Let's call the origin your position when you first made
contact. Assuming he stays on course and doesn't see you
coming, then his coordinates are <Vt,D> where t is time
since contact. You would go in a straight line on
heading h to intercept so your coordinates would be
<Wtsin(h),Wtcos(h)>, where h is the angle relative to the
original line connecting the two boats.
At intercept time T both of the coordinates would match, so
WTsin(h) = VT so sin(h) = V/W
WTcos(h) = D so cos(h) = D/WT
We solve for T by squaring both sides and adding equations
sin(h)^2 + cos(h)^2 = 1 = (V/W)^2 + (D/WT)^2
so T = D/Wsqrt(1-(V/W)^2)
Therefore to catch this guy in the minimum time possible,
you would go W knots at a heading of arcsin(V/W), and expect
to board his ship at time T=D/Wsqrt(1-(V/W)^2). Total distance
covered by your pursuit will be WT=D/sqrt(1-(V/W)^2).
It gets more complicated if he changes course, so you'll have to
make adjustments when they happen. But assuming that you
always can know his position, heading, and speed, you can
repeat the above calculation on the fly to adjust your own
heading and estimated time to board.