Typically, I will only lock informational threads that I want people to create new topics about.
For member posts, if a debate has gone so long that now it's just an argument that is not contributing, I'll lock it. That's usually the only time I really lock posts.
Interesting lesson I’ve seen elsewhere: have a board of mostly historical threads, wait for people to reply because they found it through search, then berate them for reopening old topics. (They should all be locked. Personally I’d archive the board entirely too but there is a legitimate trickle of people coming through as it’s the board for an old version of something and there is legitimate traffic in “how do I update to <newer version>” though for me I’d put that in the newer board…
The other time to really lock is when a conversation is done but people keep picking at it, like those people who can’t leave a scab alone, where the answer is pretty final but inconvenient, so there’s a need to “we’re done here, move along”.