Implement invitation feature

Hi all,

I want to implement invitation feature, just like Gmail in the early
days:
- Each user is grant a specific number of invitation
- A user can send invitations to a number of friends by entering their
email addresses
- Each of those people receive email with (unique url) sign-up link.

I would like to know is there plugin elsewhere already doing so, or a
link to a typical implementation would be helpful.

Thanks,
- Chuong