In my case a 4.0 swap was quite a bit cheaper than a gear swap. 4.0 swap cost me right around 800 bucks and that's with changing every gasket and seal in the engine and using a brand new 4.0 clutch and flywheel. When I did a gear change, I also swapped to a D35 and put a Detroit locker in the rear and when it was all said and done I was into it for about 1600 bucks.
I did a 4.0 swap about two weeks ago and so far it's been the best money I've spent on the truck. The 4.0 effortlessly does what the 2.9 can barely do, is smoother, quieter, and has netted me about 4ish mpg and the ability to run regular unleaded without pinging. I was a big proponent of getting power out of a 2.9 for the longest time but as far as bang for your buck the 4.0 cannot be beat.
Once you get into a cam swap and get your custom length pushrods made up, convert to maf (you're going to have to or it's going to run like crap) you're probably into it for at least 6-700 bucks and you're still not going to get the torque out of it. You may be able to get the 4.0 horsepower numbers out of a decently built 2.9 but you will never get the torque that it provides, and that's what makes all the difference.