I looked at the Console.app (Applications -> Utilities -> Console) and found an assertion error similar to this:
Mail: *** Assertion failure in +[MessageRouter userJunkMailRule], /SourceCache/Message/Message-930.3/MessageStores.subproj/MessageRouter.m:1360
Mail: rules must already be loaded\nStack Trace: (\n(\n 2503647499,\n 2488741435,\n 2503646955,\n 2485388964,\n 4153284,\n 3992030,\n 945573,\n 2422447588,\n 2422924776,\n 2422924665,\n 2422921978,\n 2421588387,\n 2421378377,\n 192813,\n 2420713119,\n 2420504740,\n 1029874\n))
I did a bit of searching on Google and found a similar problem from another user:
I followed the information there and wanted to add the following specific information on what I did to resolve the issue...
The bottom line is that I'd say Apple *forgot* to update a plist field. The old setting (which you'll need to fix up) is called JunkMailBehaviorHasBeenConfigured and it's a boolean. The new parameter is JunkMailBehavior and it's a number
I opened up ~/Library/Preferences/com.apple.mail.plist in /Developer/Applications/Utilities/Property List Editor.app and switched JunkMailBehaviorHasBeenConfigured from a value of 1 to 0 (That is, one goes to zero).
I was then able to launch Mail.app just fine. All my messages showed up, connected up to get my new mail, etc, etc... and I don't even have to force quit anymore.
I did go check the Junk mail rules/preferences again and made sure those were to my liking.