The invite module has a functionality similar to the referrals module. Using invitations sent by a user or a referral link, a visitor can create an account in the site. The invite module has one more option too. It allows the administrator to lock user registrations to be invitations-only. And it works quite well! The problem is that this invitations-only doesn't include referrals since it is a completely different module. As a result, I created a module to lock user registrations to be invitations-or-referrals-only. You can download the module from here or you can visit the drupal issue queue where I also posted the module.