Always, always. always, always, always. always, always, always. always, always, always. always, always, always. always, always, always. always, always, always. always, always, always. always, always, always. always, always, always. always, always, always. always, always, always. always, always book your seat in advance.
The minute you can reserve your seat (24 hours before flight or at booking) do it. Many travel agents can do it for free (no surcharge). If you carry a status level with the airlines, call your status helpdesk and they may do it for free. If you can visit the airport check in counter (anytime before your flight day), the agents can often do it (for free).
SeatGuru and SeatExpert shows you the amenities on each flight and the best seats (green ones in this map). I prefer SeatGuru's look and feel better.
Sometimes the world is against you and all the good seats may already be taken. Book a seat anyway. Then repeatedly (until travel day) keep checking the airline's site to see if something has freed up. On a recent family trip back to Montreal (from LAX), I was able to reserve Economy Plus seating for free 24 hours before the flight.
If you are a status member of the airline, ask their helpdesk if they can change the seat for you (sometimes they may swap you with someone else).
Exit row seating means you won't have any kids next to you and you will have much more legroom. You can't book these seats online (on most airlines) and so you will have to show up to the airport early and request these seats from an agent.
Many airlines now offer some sort of Economy Plus seating which is an economy size seat with more legroom and better seat incline. On longer flights, it may be worth it to pay a bit more to reserve one of these seats. Often times the prices for this upgrade (as well as to business class) are fixed when done on the airlines website but can be substantially cheaper if done in person at the airport during check in so make sure you ask. On a recent Air Canada flight, it was $550CAD to upgrade from economy to business class but the check in agent was able to do it for less than $300. Whether the difference is worth it depends on the length of the trip and the benefits of the upgrade, so you'll have to make that decision.