GitSharp (at least, its Core) was a manual, line by line, port of JGit. Its development has currently been paused since August 2010. However, some products still rely on it (e.g. Git-dot-aspx).
NGit is an automated port of JGit. It keeps on being updated against JGit and continuously benefits from JGit improvements and bug fixes. NGit is currently used to bring Git features to MonoDevelop.
Performance wise, cloning a huge repository (Mono or Linux, for instance) with GitSharp was a long and painful experience. I haven't tried with NGit though.
Considering those facts, from a support/maintenance perspective, I would suggest you to use NGit over GitSharp.
EDIT:
GitSharp web site now states
GitSharp development is currently on hold because we believe that the libgit2 project and its C# bindings libgit2sharp are far more promising to work on.