Execute this command to solve a hosed LaunchServices database:
/System/Library/Frameworks/ApplicationServices.framework\
/Frameworks/LaunchServices.framework/Support/lsregister \
-kill -r -domain local -domain system -domain user
Just calling lsregister by itself will show some explanation:
lsregister: [OPTIONS] [-domain { system | local | user | network }]... [path]...
Search the paths for application bundles and add each found item to the Launch
Services database. For domain specifications, ask CF for the list of application
locations in the given domain(s).
-kill Reset the global Launch Services database before doing anything else
-lint Print information about plist errors while registering bundles
-convert Register apps found in older LS database files
-load Load the LaunchServices service plugin if it's not already loaded.
-lazy n Sleep for n seconds before registering apps if the local cache is aleady populated.
-r Recursively register directory contents, do not recurse into packages or invisible directories.
-R Recursively register directory contents, including the contents of packages and invisible directories.
-f force-update registration info even if mod date is unchanged
-v Display progress information. -dump Display full database contents after registration.
-h Display this help.
Source: Mac OsX Hints
A larger version can be found 











