Not sure what you mean by ‘unpublish’ exactly in the BP context. I would guess that the best thing to do would be to use the WP(MU) dashboard to change their user role to ‘Inactive’ or ‘Blocked’.
Fake edit: Testing that, because your question made me curious, though, shows unexpected behaviour. I changed a user to ‘Inactive’ on my testbed, logged in as that user just fine afterwards. And, as I expected, their profile and content is still visible in Buddypress itself, as is their blog.
I wonder if you could wrap the single member profile page in a div that is hidden if their status is ‘Inactive’ or something like that. Seems kludgy, though.
Real edit, later: Or maybe not, in terms of logging in. Some very weird behaviour happening…
I have found a plugin user locker which allows you too disable a user from logging into their account.
But this will need to be added to the search query as they still show within the search results so maybe extend on this plugin also they need to be denied access to their member profile via the url.