User can mark his Profile Status as Active/Inactive. Active means the profile is public and Inactive means the profile is private. Once profile Profile Status is set to Inactive only profile owner and admin will be able to see the profile.
Also Inactive profiles will not be displayed in member search.
Get your copy of User Profiles Made Easy on CodeCanyon