I'm no connoisseur.. yet, but from what I've read, the grinder and the freshness of the bean roast make the biggest difference.
However, you can also play around with grind size, temperature and dosage to adjust bitterness/sourness. I personally picked up a Breville 870XL off FB Market Place for a sweet deal, which I can also steam my milk to make Lattes. If you're into Lattes, quality of milk also matters quite a bit.