Yesterday outgoing mail couldn't recognise my outgoing mail server so wouldn't send. I deleted the outgoing mail sever for the account (having first written down what it was (smtp.talktalk.net in this case), and made a new one with the same server, so basically just duplicated it. This allowed me to send mail.
This morning the send button was greyed out, and when I went to the outgoing server settings it said 'None'. Selecting the new version of the outgoing server I typed in last night, quitting and restarting Mail has my send button back.
I know these aren't quite the symptonms you have, but it may give you a clue since no-one else has more specific instructions.