What's better? Eye of the beholder, probably, and all that.
I did three extract brews before switching to all-grain. All had what some refer to as extract twang. It's never clear if twang comes from bad extract or some process-related problem or what, but that disappeared when I went to all-grain.
My son does extract brewing and his brews tend to have that extract twang.
Now, that doesn't mean it has to happen that way. I know a guy who has never brewed anything but extract and his beers are excellent. I've asked to join him for a brew day so I can see what he's doing--I'm sure I can learn something.
**************
There are other reasons for doing all-grain. Others have noted the less expensive cost with all-grain. If I'm doing a normal ale without a huge hop charge, I can brew for around $20 in ingredients. I buy my grain in bulk from RiteBrew; 76 cents per pound for 2-row, 98 cents per pound for Maris Otter. Hops are under $2 an ounce and if you buy by the pound, maybe $1.25 per ounce or so. Yeast is what it is, if liquid, $6.50.
Just did a Cal Common which is in the fermenter. Cost:
8# Maris Otter, $7.84
1.5# Munich, $1.75
1# Crystal 60L $1.25
3 ounces Northern Brewer hops, $4.17
Wyeast 2112, $5.99
By my calculations, that's $21 even. Or about 40 cents per 12-oz glass.
***************
You have a much wider variety of recipes you can brew as well as being able to tweak them. Like just a little more Munich in the recipe above? Add another half pound of grain. Want to go off-curve and do something weird? Do it!
***************
You're right, there's a greater investment in equipment. IMO, to do this well you need a mill (Cereal Killer at around $100 is a good inexpensive alternative), a mash tun (a cooler w/ a BIAB bag will work, call it $60), and maybe a pH meter if you're really into this ($100-120) but it's not absolutely necessary, and quite possibly some ways to store bulk grain.
If you don't buy gain in bulk, you'll pay a lot more for it. I buy my 2-row and Maris Otter in sacks, 50 or 55#. I store it in 5-gallon buckets which run $4-6 including lid. You can use small trash can bags to line the bucket, then tie it off when full. I actually use Gamma Seal lids ($6-7) but they're not necessary. You can get 50 pounds in two buckets.
***************
You can avoid the mash tun if you BIAB. You really need about a 10-gallon kettle to do that, but the bag is circa $30. I switched from using a mash tun to BIAB about 8 batches ago. I shrank the gap in the mill to about .020, and I'm getting the same efficiency as i was before with a coarser crush and use of the mash tun.
***************
All-grain works for me. You have to be a little bit cognizant of water to do that as it will impact the mash as well as the final flavors, but you can get assistance here to begin with. I ended up installing a Reverse Osmosis system to provide me with RO water rather than buying it. Bought it a year ago February, and it's already paid for itself.