I have the same problem, and I was considering using Barkeep's Friend. However, I decided not to use for the reasons that James mentions at the end of his post.
According to Weber CS you should only use warm water and mild soap. As we all know that method doesn't work so well.
Iam willing to try other methods, so let's hear some.