They can be 'surprisingly' accurate. I believe it's + or - 3%. However, they actually measure your body density based on a small current passing through you, and then calculate your body fat based on that.
My understanding (although I haven't extensively researched it, so this could be wrong) is that muscle can hold more water than fat, and thus allows more current flow when you're fully hydrated. My scale also gives me hydration numbers, and higher hydration seems to correlate to lower BF %. This means that as your hydration level fluctuates throughout the day your reading may change even if your BF % doesn't. Sweating, eating lots of salt, alcohol, working out - all of these can alter the number you see.
So measuring at the same time, hopefully with the same general amount of water, you can at least see trends, but it's not something that will be as useful for day to day changes.