The JoinEdge command joins two naked edges that are out of tolerance.
Select two naked surface or polysurface edges that are coincident or close together. If the edges overlap (run somewhat parallel) along at least part of their length (an interval), but are not coincident, the Edge Joining dialog box reports, "Joining these edges requires a join tolerance of <distance>. Do you want to join these edges?". The surfaces will extend to join along the intervals.
JoinEdge does not fill any gaps between surfaces. When surfaces won't Join, that's an indication that more time should be spent fixing the gap/overlap/other problem so they WILL join.
If the surface edges are not close to each other, you may have problems later on, depending on what you do with the model.
If you cannot join surfaces using the Join command, you should make the surfaces more accurate.
If you use JoinEdge, you should learn what it does and use good judgment. Try to think of it as a shortcut for changing your tolerance to a bigger value, doing a Join, and resetting the tolerance.