This is a surprisingly tricky thing to define. For example, if the destination is 1 meter above the surface of the navmesh, is that point considered reached if the agent moves to the ground below it?
The easiest way I have found is to do a check for if the agent has reached the end of its path and if it is reasonably close to the point it wants to reach.
if (ai.reachedEndOfPath && Vector3.Distance(ai.position, ai.destination) < ...)
Depending on your game you may want to only check the X and Z coordinates of the distance to the destination.
[Edit] Upon reading your question again, I realize that you might just have been looking for ai.reachedEndOfPath.