How to auto purge old unapproved comments? I would like to know if there is any way to automatically purge old unapproved comments on cron run. 

The requirement is -- I have turned on email notification on new comments. I would like to approve only the genuine comments and leave the rest for auto-delete on passing certain time.

Of course I already have mollom, captcha and http:BL to fight spam.
I'm not sure if there is a module which does that. However, you could do that with the help of some custom coding inside hook_cron:

function MODULE_cron() {
  // Find out the comment ids of the comments that are unpublished
  // and are older than 30 days.
  $comments = db_query('SELECT cid FROM {comment} WHERE status = :status AND created &lt; :created', array(':status' =&gt; 1, ':created' =&gt; strtotime('today - 30days')))-&gt;fetchAll();
  $cids = array();
  foreach($comments as $comment) {
    $cids[] = $comment-&gt;cid;
  }
  comment_delete_multiple($cids);
}


You can change the time to fit your requirements. This will ensure that on cron run the comments which are older than 30 days and are still unpublished get deleted.