http://www.badgeaminit.com/. They have several grades of machines--the cheapest one is only $30! But knowing that I would be making several thousand buttons a year, I bought the more expensive $400 machine. I have a 1 1/4" and a 2 1/4" machine. But I'm sure the smaller, less expensive ones are great. There's one for $60 I think, and one for $100. Then you buy the badge parts for it--either at Badge-a-Minut or at http://www.usabuttons.com/ I go there because my district has a contract with them. You can buy like 2000 buttons for only $100!
And then I go crazy! I created a template in Photoshop that has circles exactly the right size to fit in the machine. It took a few tries printing in order to get the right size. And then it's quite simple from there. I use fill techniques, actions, pictures from the internet, and I'm always looking up funny sayings online that I can put on my badges.
Here is what they look like!