David:
It depends mainly on the prototype you want to model, and more importantly, your era. Generally, code 148 or 138 is used for mainlines, code 125 for branchlines and code 100 for sidings and possibly yard tracks. Research the prototype you want to model, and if the tracks are still there measure the rail. I'm modeilling a PRR branchline and some of the yard tracks still have rail dated 1906 that is 5" high corresponding to code 100 rail. The main track of the branchline has, as best I can recall, 130 lb rail, that is 6" high, so code 125 is perfect for that. I'm not as interested in the size of the rail as measured by the prototype in pounds as I am in the height. We have basically 5 sizes/heights of rail to chose from in O scale, codes 83, 100, 125, 138 and 148. Find the heighth that best matches the prototype and use that.
I looked through the valuation records at the National Archives for the branchline I want to model and in 1918 there was still some 60 lb rail around. I'm not sure how high the rail was but I'm guessing it was equivalent to code 83 or even 70 in O scale.
The farther you go back the smaller the rail is. The rail on the main track of the branchline is dated 1921. When I measured the rail lengths they were shorter than I thought it should be. The updates to the valuation records indicate this was relaid rail. Most likely this was rail removed from mainline service but was still usable and was relaid on the branchline with the ends of the rail cropped due to wear. In 1921 the 130 lb rail was probably heavy duty mainline rail, but later larger rail became common place and the old rail that was usable was relaid on branchlines.