Why does my Mac's list of "Open with" applications start listing the apps twice and sometimes three times?
This happens because the LaunchServices database gets corrupted. 

To fix on Mountain Lion:


Open Terminal.app in the /Applications/Utilities/ folder.
run /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user
Restart


This command has changed over the years, but I just recently ran the above to fix the same issue on Mountain Lion. This hint on Mac OS X Hints covers the command for other Mac OS versions over the years.

If you don't like using the command line, the free tool Onyx also has an option under Maintenance -> Rebuild -> launchservices will work too. 

As for how to stop it, I really haven't ever seen a way. I am not sure what actually causes it to corrupt other than I know it is very actively used.