OK, I'll throw in my 2 cents. I've used quite a few languages, but here is my opinion.
Learn Python. You can even find books on programming games in Python. Python is easy, clean, close to C/C++ in many ways, and enforces good indentation (a personal pet peeve of mine). It's what I have been doing my recent programming in. I find the language very easy and natural. OS X includes Python 2.3 (not the cutting edge, but 2.4 only came out a short while ago). You install the PyGame library (search google) and you're set to program 2D games. Add PyOpenGL and you can do 3D too (note: 3D is TOUGH to do, in any language). PyGame is a wrapper to a library called SDL that is available on any platform. Python can (later when you want to learn) interface very easily with C and C++. If someone asked me how to show them how to program, I think Python is what I would show them. There are tons of libraries and other things out there for Python. Plus not having to learn about pointers and such would probably be a serious benefit. And it's very easy to make portable code in Python. Other things like not having datatypes can be good (although I miss the controll a little).
Now on to some other languages:
C - Common. Very common. C is a good language, but I don't think that it's as easy as Python. This is the lowest common denomenator.
C++ - Also common (but not as much as C). Also good, and you don't have to learn C first (but I did). Again, I don't think it's as easy as Python. Either of this is a very good language. Both this and C are as portable as you want (either very or not at all). As for the comments above about which to learn first, I would say C++ just so you learn Object Oriented Programming. I learned non-OOP first and it took me quite a while to get my head around OOP after messing around in non-OOP land for a few years. A true object-oriented language (C++, Python, Objective-C, Java, and some others) is probably best to learn on (IMHO).
Java - Much MUCH more typing than C/C++, but not bad. Some things (like garbage collection) are nice (Python has that too though!). The standard libraries for Java are AMAZING in their size. Java already has 2D and 3D graphics libraries. Java is very portable (it was designed for that after all). Java is similar to C++ in many ways (and different in others).
Objective-C - This is Apple's favorite language. I haven't used it yet, so I can't comment (although I've heard it described as C++/Java done right). The only comment I can give you is this is mainly a Mac language, and I don't know of any other platforms it has a real foothold on. So if you want portability, you might want to stay away (but portability is not a major concern when you are just learning).
I guess that's my overview. Like I said, I like Python (can you tell?). If you have any questions, I'll be glad to try to answer them. The one thing I can definatly say about C and C++ is that they have TONS of example code on the web (there is Python and Java and such too, but not to the extent of C/C++).
My other suggestion is this last one. This has caught me on numerous occasions, and I've seen it hit others. START SMALL. Don't go learning C (or whatever) thinking you're going to write a RPG like FF VII (or even the SNES FF IV). Make a little puzzle game (tetris, columns, something you like). Make a pong/breakout clone. Move up from there. Want to make a little racing game? Start by making a program that draws a car. Then make the car move around. Then make the player able to move the car. Then add the track. Then other cars. Then... and so on. Don't reach to far or you'll find yourself hitting walls and failing and getting discouraged.
As for reading books, do it. Read LOTS of books. Read a book on your language (like "Learning x"), then another ("Advanced x"), then another ("Game programming in x"), then another ("Cool x tricks") and so on. Read about the library you are using ("OpenGL in x", "Cocoa for x programmers", etc). And I STRONGLY recommend the O'reilly series of books for any, I find they are wonderful.
EDIT:
Hypercard was mentioned. While not perfect for games, many simpler games could be made very easily (Yahtzee, board games, etc.). You got great looking results without a ton of programming. Hypercard is what got me started, and I agree that it's a shame that Apple got rid of it. I REALLY with they'd bring it back.
EDIT 2:
OK, editing my post this much is probably in bad form, but here we go. As for your choice of starter platforms (the Mac), it is a VERY good one. The Mac comes with both X-Code and the full GCC toolchain (both have to be installed off the developer CD, but it's there). It's a WONDERFUL programming environment (assuming OS X of course). Plus you could always buy CodeWarrior if you wanted to. With Windows you have to get a 3rd party compiler (MingGW, GCC through Cygwin) or a free MS command line only compiler (they have one for .NET) or buy one (Visual Studio or Codewarrior). One of the reasons I SWITCHED to the Mac was that it had the GCC and unix environment (which is my favorite environment to code in). There is NO disadvantage to learning on the Mac (in case someone tells you that, although I doubt you'd see that on this forum).