Typically you should book weeks and/or months in advance if possible. The closer you are to the actual flight date, the higher the cost of the ticket it will be usually.
Many times though, Southwest airlines have pretty decent flight prices to major cities. I'd check there first.
www.southwest.com.
You could also try other major airlines websites like
www.aa.com.
Other travel sites would be:
priceline.com
travelocity.com
hotwire.com
expedia.com
kayak.com
Sometimes yes, sometimes no. If you're trying to book more than 3 months out, they just have generic prices for the flights. Pretty much every major airline does this, that I've found. Once you're inside 3 months, it can vary from day to day, sometimes even hour to hour, what price you're going to pay.
Your best bet is to keep checking back, to see what sort of prices are being offered. I have literally checked in the morning, and had round trip airfare (from DFW to upstate NY) at >$300, then checked back in the afternoon, and had it half that price. My next trip home, I scored a ticket on American Airlines website for $255, when everyone else was still advertising $380-ish, and that was purchased 2 months in advance.
Usually, the sweet spot is ~3 weeks. Once you're within a week, you're almost guaranteed to pay more, unless you're flying major city to major city (or hub to hub), or you're willing to make last minute travel plans (not something I'm really capable of doing, unfortunately).
Some of the travel sites will let you sign up for fare watches, where you tell them where you want to fly, and they'll notify you if the airfare drops below a set point you establish. Doesn't hurt to sign up for last minute deals, either, if you're able to schedule vacation time on short notice.