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?