Remove the link "add comment" if the user has already commented on the node
If you are OK with custom modules, you can make the module below.
If you have never made a custom module before, just make a folder called single_comment and create 2 files inside called single_comment.info and single_comment.module then add the code below into the respective files.

single_comment.info

name = Single Comment
description = Allow users to only add one comment to a node.
core = 7.x


single_comment.module

function single_comment_node_load($nodes, $types) {
  global $user;
  if (user_is_logged_in()) {
    foreach ($nodes as $node) {
      $comment_arr = comment_load_multiple(comment_get_thread($node, COMMENT_MODE_FLAT, 100));
      foreach ($comment_arr as $comment) {
        if ($comment-&gt;uid == $user-&gt;uid) {
          $node-&gt;comment = COMMENT_NODE_CLOSED;
          break;
        }
      }
    }
  }
}


You can call the module whatever you like but just remember to replace anywhere single_comment occurs. That includes the folder, file names, name in .info and the function name.