This strikes me as a misuse of the alt tag; it's meant to provide a description of an image, not hidden messages.
I have an alternative idea: You could include the offer on the page as part of the main content, but put it in an #offer div and set it to "display: none" in the default stylesheet so that it doesn't show. You could then call an alternative stylesheet for users using screen readers (<link rel="stylesheet" type="text/css" href="readerstyle.css" media="reader">) that would override the "display: none" so that they are presented with the offer.
I haven't tried this, but it sounds to me like a better idea than stuffing an alt tag. What do you reckon?
Added: Have done some checking. It seems that media="reader" isn't supported at present. One method of doing what you're after is simply to position the content you want to hide off the side of the monitor, so that users relying on the monitor don't see it, but users hearing your page read do hear it.