Actually they are starting to experiment with internal bleaching and it has made a big difference. I have seen this done myself, but the only thing is, you must get tooth structure removed(essentially a hole in your tooth) to get it done. I would go with a veneer, for that is about the same price. Understand though that you would really have to have a more opaque based veneer to make sure it covers the staining.