Someone asked me an interesting question recently, which was:
I have multiple email addresses that correspond to different divisions of my company. How do I assign cases to these various divisions according to which email address the original email arrived at?
This seemed at first to be a bit of a head-scratcher, since the email address itself is not stored anywhere on the case. However, there is a simple solution: use Case Origin.
Case has a field called Case Origin which can be set on a per-routing-address basis. Our first step, then, will be to set up our Case Origin field to contain the necessary items pertaining to each division. Go to Setup->Customize->Cases->Fields and click the Case Origin link. At the bottom of the page you'll find the Picklist Values. Press the New button to add some entries to this list, one for each division (note that you can add more than one at a time by separating them with a linefeed).
Now go over to Setup->Customize->Cases->Email-To-Case. Click on the Edit link for your Support routing address for each division. At the bottom of the ensuing page, you can set the Case Origin for this routing address. After saving this, you now have a field on Case which records which email address it was created from! You can now use that in your assignment rules. And that's all there is to it.
Oh, and one more thing: if your process requires that you use record types on cases, you can do the exact same trick with the Case Record Type field instead.