Pull your credit report from the bureaus and review it for any negative items (late pays, collections etc) and inaccurate detail. Try to dispute negative items and remove them from the report. If required pay off any unpaid debt. Otherwise, you won't get a low rate and may not even qualify. Of course there are lenders in the subprime market who may offer you a bad credit refinance loan, but it's better to avoid them as they'll possible charge higher rates and fees.
Many companies in this industry will do what ever they can to get away with charging you as much as they possibly can. Some of the ways they do this is not disclosing all the third party fees involved in a loan such as title insurance, appraisals, pre-paid tax and insurance escrows etc. It is important that you ask the loan officer you're speaking with about third party fees. If you don't they may not tell you and give you a good faith estimate that sounds fair, but at closing you'll find out that you have to pay a couple of thousand dollars more in fees you were unaware of. A good loan officer at a reputable company should have no problem disclosing all fees that pertain to your loan and should also make sure you understand what the fees are for.
If your new mortgage rate seems too good to be true then it probably is. Check for hidden fees in your mortgage that will make up that suspicious difference.
Once you know the reason for refinancing, you should ask your mortgage specialist whether or not it would be beneficial for you to refinance at this time or whether it may be more beneficial to wait.