Affects version = where the defect/new feature has been identified.
Fix version = where the defect/new feature is planned to be fixed.
Affects version is not heavily used – it’s very useful for what it does, but there’s not a huge amount of useful reporting you can do on it beyond the basic “where did it break” or “how many bugs did this version contain” questions.
Fix versions however, is for planning, releases, tracking velocity, monitoring progress, as well as it’s core “it was fixed in” intent, and others, so it’s used in a lot more of the widgets and reports. Try Greenhopper/Agile on a project where it’s disabled, and you’ll find 90% of it doesn’t do much!
In Affects Versions you would enter the version where the problem exists and in Fix Version you would enter the version where the problem was (or will be) fixed.