I've not been to Barbetta, so I can't help you there. Generally the restaurants on 46th Street cater to the tourist trade and don't bother turning out particularly good food, but there are exceptions, I'm sure.
Two restaurants that I just mentioned in another thread, Vice Versa and Thalia, are near the theatre district and quite good. Also nearby is Esca, with excellent Italian seafood. Restaurant Above is not spectacular, but not a bad choice a bit further south. I used to think Local was an acceptable pre-theatre choice as well, but it is closed now.