I'm a little confused. You say your son is taking money for lunch. How do you know it's for lunch, especially if you haven't talked to him? Aren't you giving him enough money for lunch? If it's for lunch, why doesn't he just say "Hey dad, can I have a few bucks for lunch?". Or are you saying my son has permission to take money out of dad's wallet for lunch, but has been taking out more than the allotted amount?
Unfortunately, small amounts of money missing here and there are the beginning signs of trouble. Is it possible that he may be drinking, doing drugs, gambling, or even taken up smoking? You may want to do a little "spying" before you have a talk with him.
If you're 100% sure it's your son who's taking the money (not your other son, one of their friends who frequently visits, etc), then you and your husband should sit down with him (make sure his brother is not arround). Before taliking to him, you and hubby, should both be in agreement about how you're going to respond to some of the excuses he may present, and what type of punishment.
Then straight out ask "We've noticed that there is some money missing, we also know you're the one who took it, please explain to us why you took it and what you're using it for." Take it from there.
Good luck and please let us know how the talk goes.