Both for monsters and player. Couple possibilities come to mind here...
Creatures raise an exception when they die. Only the logic object should be calling into critter code, so it can just catch this and do critter.die() or whatever.
Creatures fire "death" events at themselves.
Creatures ask the logic object to fire death objects on their behalf, then immediately stop what they're doing.
Both for monsters and player. Couple possibilities come to mind here...
critter.die()
or whatever.