If you forget about the affine-ness for a moment: you can parametrize a null geodesic in any way you want. Actually, you can parametrize any geodesic (heck, even any curve) in any way you want; all you need is a monotonic function that maps points on the geodesic to unique values of the parameter. But for timelike geodesics, you almost always use the proper time because it's a nice, sensible physical quantity that also happens to work as a parameter.
With null geodesics, you don't have the proper time as an option because the proper time mapping assigns the same value to all points on the geodesic. So you have to pick some other parametrization. In principle, again, it can be any monotonic function that maps points on the geodesic to unique values of the parameter.
However, it's possible to pick a way to parametrize the null geodesic in a way that is "sensible" in the same way that proper time is "sensible" for a timelike geodesic. This is called an affine parameter. In particular, one way to define an affine parameter is that it satisfies the geodesic equation. (Note: the geodesic equation does not work for just any arbitrary parametrization of a geodesic. You have to use an affine parameter.) Another way is to say that iff the parametrization is affine, parallel transport preserves the tangent vector, as Wikipedia does. Another way is to say that the acceleration is perpendicular to the velocity given an affine parameter, as Ron did. All these definitions are equivalent.
It turns out, although I don't know the details of a proof, that there is a unique affine parameter for any geodesic, up to transformations of the form $t \to at+b$.