We have an in-house VIP program where we offer 3 tiers of membership. They all come with 20% off (as long as there is a balance in the card). Basically it's just a card to keep balance in (we don't charge a service fee) and they swipe the card each time as they pay and once they run out, they'll recharge to continue enjoying the benefit of 20% off.
Customers love it because it's convenient and they get a discount for being a regular.
The three tiers of membership that we offer each comes with different sign-up bonuses. For example $20, $100, $200 etc. coupons that can be given out to friends or family or used for themselves.
Or you can give out things gears or even cues as a sign up bonus.
The set up is fairly easy you just need to get a card reader and implement it with your POS system.
There is currently a company that offers Rewards Loyalty Program, most of our surrounding merchants use "Five Stars". Not sure if it's applicable to your area but they seem to be legit.
Anyhow, how that helps, if you have any questions specifically, feel free to PM.