There are two things you should do to make sure that you have full control over which account you're sending from:
1) In the Mail preferences (version 6.2, but it should be similar for versions 4 and 5), under the Accounts section and the Account Information, make sure that "Use only this server" is checked for the Outgoing Mail Server (SMTP) option, and ensure that the server corresponds to the account that you expect it to. Run through all of your accounts and make sure that the box is checked for each one.
This is critical, as even a small connection error will cause Mail to use a different outgoing server, which will alter which email account the message comes from. You wouldn't be alerted to this at the time, either. With this option checked you'll see that the message is still sitting around your Outbox, and you'll have the option of holding it there and re-sending later or manually changing the email account.
2) You want to know which email account you're sending from. I don't count this as critical because the behavior is usually predictable, as long as you've restricted the outgoing server as outlined above; replying to an email will use the account that the original message was sent to. Regardless, if you don't already have it visible, you want the "From" field to be visible to you on your email messages. This was disabled for me by default; I don't know if that's still the case.
To enable the "From" field in Mail 6.2, create a new email. In the message window there should be a button to the left and a bit beneath the "Subject" field with three lines and a little drop-down triangle. Click it and hit "Customize." A "From:" field should appear beneath the "Subject:" field. Make sure that the checkbox to the left of "From" is checked; you can also enable other fields if you like. Click on "OK" to exit the customization. Now you can see which account you're sending from, and change it if you wish.