Edit: Apologies, Gordon Linoff already answered the question more directly. This is what I get for being half distracted while answering. :)
You could use a subquery to grab the ReferralCount for the Email in question, and then get a count of how many user rows have a higher Referral Count.
Your subquery would get the ReferralCount of the user (eg "5" for 1@1.com):
select ReferralCount from users where Email=1@1.com
.
Then if you use that as a subquery in a where clause, you could count how many users have a higher ReferralCount (remember to add 1 to the rank. If it returns "1" higher user, then you should output "2" as the current user's rank):
select
(count(*) + 1) as Rank
from
users
where
ReferralCount > (select ReferralCount from users where Email=1@1.com)
This will output "2", because only 3@3.com has more referrals than 1@1.com.
You may want to skip users with the same ReferralCount. Eg if three users all have "10" referrals, and the user you're querying has "9", then the above query would output a Rank of "4", even though 9 referrals is only in second place behind 10. If you would rather it return a rank of "2" (second place), then you could get a distinct count of the ReferralCount:
select
(count(distinct ReferralCount) + 1) as Rank
from
users
where
ReferralCount > (select ReferralCount from users where Email=1@1.com)