I've had tubs refinished several times, and personally I think it's a great option. Done right, the results look as good as a new tub. You do need to be careful what kind of cleaners you use on the refinished tub though, as any abrasive cleaners will damage the finish.
As for doing it yourself - I suppose you could do it yourself, but I've always hired a pro to do it. The job is 90% cleaning and prep work, and if you don't do that right, you won't be happy with the results.
Considering the difficulty of replacing a tub (it's a big job) and the "collateral damage" that often happens when you do, I would always opt to refinish rather than replace unless I was planning to completely gut the bathroom anyways.