90% of our business comes from leaflets, which have always had prices on. Our reasoning was that we can push the boat out and make our service look as high quality as possible and get the customer thinking "That looks great but I bet it's going to be wildly expensive." Then we put the prices in and have them think that it looks reasonable for the level of service.
It also has another benefit: every customer who calls is already pre-qualified on the price, so while it may reduce the total number of calls, 95% of those calls result in a booking. The ones who haven't seen our pricing are normally the ones who say they'll call back (and never do, of course!).
We did it because my wife will simply not call anyone who gives no idea of their pricing. My wife's pretty typical (but only in her shopping habits!), so we thought it ws a good idea. Plenty of customers have remarked that it was one of the reasons they called.
Wherever you do it, make it simple to understand. I'd suggest that if your pricing is simple enough to put in menu form, then put it on your leaflets. Put a year on it to prevent the out-of-date problem. If someoene sees last year's leaflet saying £20, they won't be upset if they call and it's £22. Even for corporate customers who may have to call, it'll give them an inkling for your prices.
Also, when you put it on your website, make it easy to find. People give up very quickly if they can't find something easily.