I believe that Stack Exchange & Co provide a good template: by default deletions are transparent (i.e., users will know that about the deletion, possibly even learn about the reason for the deletion) but for certain situations moderators still have the possibility to silently remove posts.
As necessary as post deletions may be to foster high quality discussions, they are also inherently uncivil, if I may say so. So the least we can do is make them transparent. Or, speaking in more technical terms: provide admins with the tools for being more transparent about deletions.
Off the top of my head I can see three four levels dimensions of transparency (plus no transparency aka silent deletion):
- Not actually deleting the post but merely hiding it the same way posts are hidden in simmarized topics. (added based on some replies below)
- Deleting the post but leaving a visual marker in the post stream representing the deleted post
- Providing a reason for the deletion
- Notifying the author of the deleted post about #1 and/or #2
#4 is already possible manually but not at all encouraged UI wise.