Every few months for the last several years, this particular problem annoys me enough that I search MacOSXhints and the web in general for a possible solution. The closest thing I've ever found is this hint, but that doesn't describe the situation I've encountered. Maybe that's because the solution was obvious to everyone but myself. I find that hard to swallow.
I tend to use my Powerbook while disconnected. I also tend to "send" messages while disconnected, so they stay in my Outbox until I reconnect. Generally, it works. But every once in a while a message gets stuck. Mail.app flatly refuses to try to redeliver it. "Synchronize Accounts" does nothing (and never has). It used to be that sending another message via the same server would prod it into sending both messages, but somewhere along the way Apple fixed that "feature." Usually quitting and restarting Mail.app (a lame solution to my mind) would cause it to retry. Still, every once in a while I'd still have messages that defy even that treatment.
Recently, I serendipitously stumbled upon the solution: Drag the offending messages to the "Outbox" folder in the folders pane. They'll be redelivered. That's a handy little feature. Too bad it's not documented anywhere.
Yes, I am aware of the "Message -> Send Again" option. But there are times when I want/need to keep the Date: header (yes, it can be forged) and the timestamp of the cryptographic signature the same as the original send date and time.
[Also, I've given up trying to find the rhyme or reason behind the two "I can't send this message" dialog boxes Mail.app has. Every time I think I've got it figured out, I get a counterexample. I just know that the one that gives you an option to try another server more often lands messages into this state, even if you choose not to.]