The answer to these questions really depends on what you want your ultimate end result to be.
It's really impossible in my opinion to get a quality paint job even at a reasonable price.
The quality paint job is going to take a lot of labor hours and expensive materials to do properly.
It's going to be expensive.
If it's not expensive then something is not being done that should be done most likely.
As far as doing it yourself it's possible but if you're expecting the result to be similar to a factory finish you're probably better off having it done by a professional.
Unless you have all the equipment including a spray booth, etc and a lot of time on your hands and patience and skill and you're doing this everyday, it's going to be very difficult to get super high quality results.
If you have a daily driver and you just want to get some consistent color on it without any big gashes bangs or scars then by all means you can probably find someone to spray it at a more reasonable price.
In this case it might be feasible to do some of the labor beforehand yourself by doing the sanding.
I would pay somebody to do any metal work that's required, welding, dolly work, etc.
Unless you possess the welding equipment and skills yourself.
And then you can do some of the sanding work prior to paint.
Preparation is the most important part of the work.
Not to say that the spraying isn't important either but without a good foundation nothing is going to look good or stay on the vehicle.
And once again, depending upon your desire the end result, the proper way to do it is without the engine in the car. This helps to ensure that you don't have paint where it shouldn't be and you do have paint where it needs to be. Of course this involves towing the car back and forth without an engine in it.
And it requires patience to put the engine in without committing a big tragedy.
My two cents worth only.