Drafty windows can have a big impact on your energy costs as well as your comfort. Short of purchasing replacement windows, there are a number of ways to keep the heat in and seal drafty windows.
First, check the fit. Many times, windows will warp or twist, or the wall will shift and result in the windows closing unevenly, leaving space where air can sneak through. To check yours, close the window very carefully and look at the alignment where the base of the window strikes the window sill, as well as where the two windows styles (top and bottom frames of each window) line up. If you see gaps, the window should be trimmed to improvement the fit, or you can deal with it by adding additional weather stripping.
Speaking of adding weather stripping, that would be the next step. Check the gaps around the window to be sure that the weather stripping seal is intact. If not, you may need to replace it. There are many, many types of weather stripping available. The type that works best for your situation is probably going to depend on which type fits the application the best. I have had the best luck with the sticky backed rubber insulation.
For windows that you don't need to open regularly, another option to sealing drafty windows is to caulk them shut; not with the usual caulk, but with a temporary caulk. Manufacturers like DAP or Red Devil make a clear temporary caulk that can be applied in the winter to seal drafty windows and easily pealed off in the spring to once again make the window operable. I have to caution you though to not use this type of caulk for any window that may need to be opened for emergency escape, such as a bedroom window.
Finally, if you are just tired of the caulking and weather stripping chores and the hassles of sealing drafty windows, you can consider replacement windows which can be installed without tearing out any siding. Replacement windows are made to fit the existing windows' openings and can be installed by just removing the operable windows' sashes and leaving the frame in place.