I never saw a difference, except one lets you see it afterwards and the other you can see if you hack or have the permission to see the deleted posts.
A locked topic is useful if you still want it to be viewed by users without any further details being added on, for example dev updates or old contests. The information is still useful/relevant or is good to keep a record of.
Removing a topic is better for something that isn't needed, whether it be a duplicate thread, an argument within a thread or anything inbetween.
As for people being able to lock their own threads, whilst it's a practical idea, there might be some drawbacks if put in place, i.e. people locking their threads immediately after they post an idea or people locking popular discussion threads because they don't like something about what's being said.
I think being allowed to lock your own threads has equal advantages/disadvantages to not being allowed to lock your own thread, so I don't think it's have much of an overall effect either way.