Cutting straight to the point: Dashes are better than underscores.
# Google indexes on keywords in hyphenated urls but not on keywords in underscored or conjoined urls.
# Yahoo indexes on keywords in hyphenated and underscored urls but not keywords in conjoined urls.
# MSN indexes on some keywords in hyphenated, underscored and conjoined urls but the exact circumstances in which it does so are at the moment unclear.
With underscores, Google’s programmer roots are showing. Lots of computer programming languages have stuff like _MAXINT, which may be different than MAXINT. So if you have a url like word1_word2, Google will only return that page if the user searches for word1_word2 (which almost never happens). If you have a url like word1-word2, that page can be returned for the searches word1, word2, and even “word1 word2″.