I am using zoo visitor to manage my member profiles.
Is it possible to allow members to edit their profiles but not let the edits post live until they are moderated/approved by the admin?
Natively it would be tough. You could set their member group to have access only to a particular status, but that would take the member entry out your "regular" loop (since it would affect the status on an existing entry and not be doing version control, leaving the previously approved version in place).
Since with visitor members are entries, Better Workflow could do this for you. But it's a lot of functionality to throw at that one issue. Obviously there would be other benefits. But it depends on whether you need the member's previous profile to remain live while the edited version is in review.
Publisher, I believe, would also allow you to do this (one of the cool things there is the change highlighting Publisher can do).
I use Safecracker to let members edit my Zoo Visitor Channel Profiles, I have an additional status called 'Moderate' and use it as a hidden field.
<input type="hidden" name="status" value="Moderate">
Whenever they update, viola - I know they've edited and can hide their status until moderated. (I also have a cron job that looks for the status of Moderate every morning and it emails me with each entry that requires moderation)