There's seriously no reason NOT to refinance if you have more than 15 years to pay and an interest rate above 6%. But you have to do it right or you get screwed.
In no particular order of importance:
1. Make sure you get a 15 year fixed loan. Nothing adjustable.
2. Make extra principal payments early if you can. Your total payment should be lower if you have more than 15 years left to pay and have a higher interest rate. So you can make the same payment you're making now and come out way ahead. Of course more is better. But you have to really commit to it.
3. Do NOT pull cash out except to pay off higher interest debt and then cut up those credit cards and stop buying crap.
4. WATCH your closing costs. The mortgage guys are all starving and they'll squeeze every nickel out of you they can. Read the Estimated HUD-1 very carefully and don't be afraid to walk away from it if they try to screw you at signing.
5. Know what your house is worth before you pay for an appraisal.
6. SHOP AROUND but DO NOT let a bunch of brokers run your credit. Tell the your score, it's good enough for a quote no matter what they tell you. Don't give them your SSN until you're ready to go forward with a full application.
7. Don't let a broker charge you points. They make money from the lender too. They'll say you can buy down the rate with points but if you're committed to making extra principal payments, it's probably not beneficial to buy down the rate. But go play with an amortization table. If they tell you one point gets you 1% rate cut, play each one out on the table and include the extra principal payments you will make.