To the OP: depends on how much you want to spend, how much work you can/want to do and how accurate you want it to be.
For example, for my TH42 Atlas lathe I'm using the android touch DRO program (free), building the launchpad interface with pretty much all eBay bits/parts (~30 bucks), using the cheap "Chinese" vernier caliper heads (~25 bucks for 4), a couple Wixey sensor strips (~30 bucks) and the brackets are all home fabbed (my scrap or cheap drops)
All that will do X,Y and tailstock (also have parts for compound, but don't know if I'm doing that one or not).
Touch DRO will also do RPM, but I have a separate display for that mounted in the control box for my Cycletrol 150 (Baldor 3/4 HP DC motor powered lathe) and the pickup is on the spindle.
I "splurged" an extra 25 bucks on ebay for a dedicated android tablet because I wanted a "permanently installed" display, but I could have just used my 7" nexus tablet had I not wanted to spend the 25 bucks. Heck, an old android touch phone will work, as long as the kernel is 3.0 or better.
Accuracy is only going to be in the 0.001 range, but that's good enough for the work I do.
Although mine is on a lathe, it's pretty much same-same for a mill.
From there, the price only goes up.....