Disabling accounts programmatically
Updating status through user_save() is a good way of doing it. 

Also note that when you set status to a value different from 1, $op will get set to 'status_blocked', for which no email will be sent.