Rather than depending on process name, which can be defeated even accidentally by renaming the executable, the traditional way to check for an existing instance is to have a named handle, such as a mutex. During startup, check if it already exists, shutting down immediately if it does.
edit
I just read the question again and it sounds like you really want to kill the previous instance, not kill the new one. The closest I can remember seeing to that behavior is what Google Chrome does when you open a new window and the old one is unresponsive, but even that checks for the lack of response and then prompts the user. Killing the old process sounds a bit extreme. Are you sure that's what you want to do?