What type of centralized home control hardware is available?
What you're looking for is home automation. X10 is probably the most popular technology system for this, but that Wikipedia page lists a number of alternatives.

To address your specific areas of interest:

LED lighting

There may be pre-built solutions out there, but as you're already writing custom software, you may want to look into using something like the Arduino platform to control your lights. Done correctly, you should be able to get the effects you're after. I found a tutorial about how to do a simple LED system that may be useful.

Speaker Control

There are actually a number of systems out there for home media distribution, such as Linux MCE (it took awhile to load that page when I wrote this, but it did load without timing out). You may be able to use one of these, or work some of the code in from one to duplicate the functionality (MCE is open source). The most simple solution is to use small appliance computers that run a very lightweight Linux solution (like MCE) that stream from the base computer. There are actual streaming devices out there, but I'm not sure how well they would integrate into your automation/control software. If you literally just want to run speakers, you'll need multiple sound cards in the base computer to differentiate between the feeds.

Automagical Applicances

This is where the home automation tech comes in. Using something like X10, you have the ability to flip switches, monitor their status, etc. There are appliances out there that will talk some of these languages, allowing you to control them remotely. A quick search turns up an Engadget article pointing out LG Thinq devices that are accessible via WiFi and ZigBee. If you program your software to speak ZigBee, you should be able to integrate these appliances. Given the number of different protocols out there, you'll probably want to find your devices, try to settle on devices that use one protocol, and then write your code to speak that protocol, but you can also work with multiple protocols if you don't mind developing for each. I believe Linux MCE supports a few of those languages, and since it's open source, you can expand it to support whatever you'd like.