Which airline is the cheapest is very much dependent on where you are flying from. The best time to book is largely a function of when you are flying, but there are a great many factors that come into play.
My suggestion is to start by doing a search on a site where you can see which airlines are available, what routes they fly (nonstop, connecting, etc.) and what prices are running. Keep checking that site periodically and you will get a better sense of what fares typically are and what a good price might be. Then you will have a handle on when fares for your dates are high and when they are low.
I generally don't recommend buying as soon as fares come out (330 days for the traditional carriers, later for some of the new low-cost carriers) for a couple of reasons. One, it maximizes the chances that the airline will screw around with your flight times and/or routing at least once (and possibly multiple times) between when you book and when you fly. The second would be that in general fare sales will come along closer to your flight dates (assuming they come at all) and in most cases you won't be able to rebook and take advantage of the lower fares if you're locked in to higher priced tickets (Southwest and a few others being exceptions, but SWA doesn't serve Canada so you can't book them unless you can get to Buffalo or someplace to catch a flight).
The only time I would consider booking early is if you are traveling at peak travel times, such as holidays. In that case, the biggest issue can be actually getting seats vs. paying the lowest possible fare.