And here's the code to set a field to read only (you can also use disabled) and update the field colors to match the colors of other read only fields on the same form.

crmForm.all.estimatedvalue.disabled = true; "#000000"; "#C5C5C5"; = "#EAF3FF";

NOTE: Using the disabled property is generally better than the readOnly property because it sets some of the color attributes correctly leaving only a few for you to set on your own.  Also, keep in mind that different field types (picklists, lookups, etc) behave somewhat differently.

As an aside, all of the standard colors can be found in the CRM SDK.