I am planning on making games within the next few years. I have read a book on DirectX 7 (with excellent explanations), and right now I am going to start learning either DirectX 9 or DirectX 10. The advantage of DX 10 is that it is newer and better. However, DirectX 10 only works on Vista and later OS's (doesn't work on XP). DirectX 9 is also pretty good and it works on XP.
The games I am planning to make will probably be mostly 2D, so they don't require cutting edge 3D graphics.
I want the game to be fairly accessible to players. I don't know if enough people will be using Vista+ in the next 2 years or so to make using DX 10 a good idea.