The first thing you're likely to find out there about home automation will be the X10 standard. X10 is actually a pretty old technology, developed back in the 70s. It's a low-cost option and it will work just fine for controlling/dimming lights and basic on/off appliances, however if you need more advanced functions such as thermostat control it will fall short and you will need to start looking for workarounds.
I will not go into a lot of detail about it because X10 alone will not satisfy my requirements. For me it doesn't make much sense to start with X10 from scratch, and at this point it'd only be a good idea if I already had X10 equipment and wanted to keep costs down. This guy has a very clean explanation of his setup using X10, his main requirement was low cost and it seems it works out pretty well for him, if you decide to go with X10 I recommend you read his site in detail.
INSTEON is a newer technology and so far the technology of choice for my project. While it is based on X10 (and backwards-compatible with it) it solves most or all its shortcomings. You can control pretty much any type of device with it including thermostats, sprinkler systems, etc.
Every INSTEON device already has a unique id assigned to it as opposed to X10 where you have to set it and keep track yourself, which in turn also makes it more secure.
I have decided to go with INSTEON for the following reasons:
I found some other technologies which I will not include here (Z-Wave, ZigBee, UPB). They're either for very specific uses, or have limited offerings as far as supported devices and platforms. I may be wrong as I did not research the other offerings beyond the very basics, but in any case INSTEON does everything I need so I will not cover anything else on this site as it is not meant to be a complete reference, but only an explanation of my own setup.