observers question

Is it possible for observes to run more under the context of the application itself, rather than just like a model?

I've found them very limited for doing things like sending email when the state of a model changes. Since the observer works in the same context as a model - it isn't aware of things like what account is currently being used, configuration variables that are pulled from the db, etc.

Mostly what I want to do is be able to send emails when something changes in the model. Unfortunately right now I just have to put the code to send the email in the controller... it's not very dry (several different controllers can change the state of this model) and it of course doesn't work at all if I change something from the console.