I have long, medium/light brown hair that I have been coloring at home for decades. My guess is, left uncolored, I am probably about 75% grey (but who can tell? my haircolor is whatever it says on the box
) I use Color Silk by Revlon, which is really cheap ($2.50/treatment) and color every 6-8 weeks. When I started I used two boxes to get all my hair (thick, long) but now only do the roots and whatever is leftover I use on the ends, which tend to lighten up fairly quickly. I find that I need to leave it on for about 30 minutes to get good coverage. I have tried the more expensive OTC brands but find that Color Silk works well for me. I think I use the two boxes about twice a year, still, for even coverage, but just do the roots and ends in between. Sometimes I use the "for grey hair" brands, which are supposed to give better, longer grey coverage, but haven't noticed much difference.
Tips: "golden" shades tend to bring out reddish highlights on brown hair, "ash" shades leave a more normal-color. Keep some rubbing alcohol on hand- use it on a cotton ball to wash off the "oops" drips on the sink or on your skin. I have an old shower cap that I wear over my hair while it is coloring to prevent accidents, like if I sit on the couch and lean back or something. (I am wearing it- and coloring- as I type!!)
There's no way we could afford for me to have my hair professionally colored. Basic coloring starts at about $60 in our area. That would be over $500 a year, just to have my hair colored? That's crazy, and definitely not in our budget. I know it's affordable for some, but not for us.