Thanks Tom, I wasn't even aware of the "group by" option.
I've added GROUP BY so my sql now looks like:
$query =
"SELECT * FROM referral WHERE referral_country ='USA' GROUP BY referral_state ORDER BY referral_state, referral_city, referral_name_last ASC";
Now, rather than giving me all the listings in the states, I'm only getting one per state. Prior to adding GROUP BY, I got everything I needed, but the State name repeated.
Maybe I'm missing something now?
And, just to show my ignorance, what is a "sanity check"?