Can a plugin fire a custom event?
Yes. It's not documented, but by instantiating the Event class (which is just a thin wrapper for Yii's CEvent) you can create and raise your own events. Obviously you could extend the Event class as well, if need be.

See Aaron Berkowitz' excellent answer to a similar question for details -> https://craftcms.stackexchange.com/a/6941/1098

Also, check out the following resource for more on events in Yii: http://www.yiiframework.com/wiki/327/events-explained