Registration database - Wiki
Everything you mentioned in the post is achievable by Drupal.

But not with just one module or a theme. Each functionality has its own module

1) Theme 
There are lots of themes available in drupal download section which you can go through and decide on the theme that matches your requirement or you could build one on your own.

2) The profile page with in the Drupal has option to add the required fields. But if you want to extent it you can go for http://drupal.org/project/profile2

3) These additional two modules can show the percentage of the profile completed and if the profile needs to be completed. http://drupal.org/project/pcp and http://drupal.org/project/complete_profile

4) User approval is in build in Drupal. 

5) To achieve the admin type you are looking there are two options one is organic groups and make each geographic location a group and give group admins the right to admin the members of that group. Another option would be to create a user role per geographic location and have the user select the role during the registration process using the autoassign role module and the use http://drupal.org/project/administerusersbyrole module to assign admin rights per role. 

6) Once you use profile2 each profile is a content with in drupal and you can do all the searching that is default to drupal or you could also create views with exposed filter to do the searching on specific fields. 

7) You could add a tag field to the profile and create a view to display the profiles with the tags as the argument to the view page.