This is a problem which can be best solved by improving the client's data about the behavior of its user(s). In my case, I primarily send emails with attachments to people I know. That'll usually be email addresses that have previously been used and they'll often be stored in my address book.
Some people more commonly send attached files to people they don't know, haven't emailed, and may never email again. For example, someone who's unemployed might send lots of resumes.
I'm a very novice programmer, so I'm sure this isn't the most elegant solution... but I'd begin tracking every email which went out with an attachment and start looking for patterns.
If every email to [email protected] contains an attachment and then I try to send one without an attachment, it'd make sense to ask me if that was intentional. If 95% of my emails to [email protected] don't have an attachment but every email on Friday at 5pm has one, it'd make sense to ask me on Friday at 5pm and not otherwise.
I don't know of an email client which has this functionality or even a plugin that does it. However, I haven't spent much time searching... it'd be worth looking around to see whether one already exists.
I don't think the compose screen is typically the main culprit, though... I think it's more that it's easier to remember things that you do routinely. Unless the majority of the emails you send include attachments, your routine is to quickly hit send or a keyboard shortcut. Visually emphasizing the method to send an attachment would be annoying for most users because more emails are sent without attachments than with attachments.
You could subtly change the display based on whether you expect the user to send or not send an attachment. However, the advantage of asking them directly "Did you mean to send an attachment?" is that it provides more information that can be used to improve future guesses.