What is cheap for you? As far as I know, (pairdomains.com) offer .com @ USD 8 (eight) now, and they offered .com @ USD 5 (five) recently.
You can compare domain register before buy any .com domain. If you compare register, you may find $1-10$ per domain for 1 year. Just google it compare .com domain price.
I personally like NameCheap's user interface. Their Ajax based search feature allows you to quickly search for different domain names on their website without hitting Enter after typing the domain name. This is quite helpful when your creative juices are flowing and you're making up different domain names in your mind. Since finding good, short and catchy domain name is quite difficult nowadays, you have to be creative and make up new domain names on the fly so having a hassle-free user interface like NameCheap's helps a lot. As far as domain names being cheap is concerned, if you're a new customer, they will give you a discount on your first purchase. Other than that, since domain names cost $10is a pop (assuming we're talking about .com domains), I'm not sure if you will find a large variety of different prices over here.
Many many places to buy them. All prices are similar. You might be able to find a promotion at Namecheap. "porkbun" interesting name. Started out selling hot dogs? ha ha
I like NameCheap too. I used to buy them at $9+ (.com) but they increased the price, I just renewed some at $16+. All of them hook you up the first year then they increase the prices the next year.