HP and Epson are typically the best on the printer market and certain Canons as a very good alternative, at the current time in the inkjet market (not the laser...). With HP, you'd need to spend AT LEAST $100 to get a decent printer that would gouge you on the ink.
As for your specific question on a compact printer, I'm assuming that you need it with a laptop. With that HP has a very good mobile printer in the 460c and the 460cb. The 460c is $250 and the 460cb is $300 (it comes with a rechargable Li-Ion battery). There is also the PIXMA iP90 that is another good option. Do a little more research on these two and see which one looks better for you...