Local muso forums and FB events usually do a good job... if people can be arsed to come.
EDIT: But regarding promotion, its the venues job to get the punters in. A local venue near to me thinks the exact opposite. They allow you to play (its quite a big venue which holds around 250 people) but they put up no posters or such advertising the gig. They give you tickets to sell for £4 each and you have to go out to friends/family/etc and sell these tickets and get the money off the punters. Once you've sold the 50 tickets or whatever the minimum is, you go to the venue the night of the gig, give the promoter the money you made selling the tickets and get £1 back for every ticket you've sold - HOW FAIR IS THAT?! And you get about 5 bottles of beer to split between the band...
Nowadays when I play there I do either two things:
1. Get the tickets, chuck them in the nearest bin and when the promoter asks how many have you sold say 0. I'm not doing free promotion.
2. Get the tickets, sell the tickets, split the money we make from ticket sales between the band and tell the promoter we sold 0 tickets - this guy is never on the door trying to get punters in (so won't check when people arrive with tickets) and spends all day upstairs in his office.