Check your local yellow pages, under metal plating. Most platers also do anodizing.
The price to anodize a single piece may be $80, but there are significant savings for additional pieces done at the same time.
I don't think you'll find anything much cheaper though. Around me its $65 to anodize, and when you add in stripping, $80 is pretty reasonable.
Ask if he'll call you when he has a batch of items to anodize. You should be able to get a price break if he is willing to add your upper to another anodizing batch. It dosn't neccessarily have to be a batch of uppers, just something around the same surface area. But, don't be surprised if he says no, especially if you are trying to match colors. But check around locally. At least you'll save shipping costs and turnaround time should only be 1-2 days.