I'm going to preface my reply with the fact that I have my MS in soil science (currently working on a PhD in soil science) and that I know more about soil fertility (nutrients for your lawn) than the average person. Also, I admit that I don't really know anything about weed control.
Now, if you truly want to get the most bang for your buck in regards to adding fertilizer to your lawn, do a soil test. Having the soil analyzed is the most accurate way to determine what nutrients your lawn is deficient in - if any. Taking a soil sample is as easy as going out and taking small soil samples from the top 6-8 inches of top soil from all over your lawn so that you have a representative sample. Then, mix all of the samples in a large bucket until they are thoroughly mixed. You can take this sample and submit it to a lab that will analyze it for nutrients. You can submit samples to the ISU soil and plant analysis laboratory ($8 for a general soil analysis for horticultural crops... including turf grass), or you can submit it to a local soil testing lab or coop as mentioned by another poster. Here is the link to the
ISU Soil and Plant Analysis Lab, specifically their horticultural crop soil testing page. They have directions on how to take a soil sample, package, ship it, etc.
ISU's lab will analyze for phosphorus (P), potassium (K), and pH (for lime requirements). They will also likely tell you how much N you should be applying. They won't test for this because N is tough to measure in samples that are shipped, and potential stored for any amount of time. If you need help interpreting the results, PM me and I'll help you out.
If you have spots in your yard that look different than the rest of the lawn (like large yellow areas, or spots that don't grow as tall and its not due to weeds), then take a separate sample from that area and submit multiple samples for analysis.
Laymen lawn care DIY'ers often over-apply, or even under-apply fertilizer and lime because they don't do soil tests. Do it, you'll be happy you did.
Lastly, the one weed control trick I do know is that if you keep your grass as long as possible, it will be better able to compete with weeds because the grass will shade the weeds out. If you cut grass too short, you will definitely have crabgrass or other weed problems moving into your lawn.