Richard Carrier (author of Sense and Goodness Without God) has a longish blog post up about moral ontology, well worth reading if you're into that sort of thing. (Via Russell Blackford.) Carrier is a secular materialist, but a moral realist: he thinks there are such things as "moral facts" that are "true independent of your opinion or culture." Carrier goes to great lengths to explain that these moral facts are not simply "out there" in the same sense that the laws of physics arguably are, but rather that they express relationships between the desires of particular humans and external reality. (The useful analogy is: "bears are scary" is a true fact if you are talking about you or me, but not if you are talking about Superman.) I don't buy it. Not to be tiresome, but I have to keep insisting that you can't squeeze blood from a turnip. You can't use logic to derive moral commandments solely from facts about the world, even if those facts include human desires. Of course, you can derive moral commandments if you sneak in some moral premise; all I'm trying to say here is that we should be upfront about what those moral premises are, and not try to hide them underneath a pile of unobjectionable-sounding statements. As a warm-up, here is an example of logic in action:

All men are mortal.

Socrates is a man.

Therefore, Socrates is mortal.

The first two statements are the premises, the last one is the conclusion. (Obviously there are logical forms other than syllogisms, but this is a good paradigmatic example.) Notice the crucial feature: all of the important terms in the conclusion ("Socrates," "mortal") actually appeared somewhere in the premises. That's why you can't derive "ought" from "is" -- you can't reach a conclusion containing the word "ought" if that word (or something equivalent) doesn't appear in your premises. This doesn't stop people from trying. Carrier uses the following example (slightly, but not unfairly, paraphrased):

Your car is running low on oil.

If your car runs out of oil, the engine will seize up.

You don't want your car's engine to seize up.

Therefore, you ought to change the oil in your car.

At the level of everyday practical reasoning, there's nothing wrong with this. But if we're trying to set up a careful foundation for moral philosophy, we should be honest and admit that the logic here is obviously incomplete. There is a missing premise, which should be spelled out explicitly:

We ought to do that which would bring about what we want.

Crucially, this is a different kind of premise than the other three in this argument; they are facts about the world that could in principle be tested experimentally, while this new one is not. Someone might suggest that this is isn't a premise at all, it's simply the definition of "ought." The problem there is that it isn't true. You can't claim that Wilt Chamberlain was the greatest basketball player of all time, and then defend your claim by defining "greatest basketball player of all time" to be Wilt Chamberlain. When it comes to changing your oil, you might get away with defining "ought" in this way, but when it comes to more contentious issues of moral obligation, you're going to have to do better. Alternatively, you're free to say that this premise is just so obviously true that no reasonable person could possibly disagree. Perhaps so, and that's an argument we could have. But it's still a premise. And again, when we get to issues more contentious than keeping your engine going, it will be necessary to make those premises explicit if we want to have a productive conversation. Once our premises start distinguishing between the well-being of individuals and the well-being of groups, you will inevitably find that they begin to seem a bit less self-evident. Observe the world all you like; you won't get morality off the ground until you settle on some independent moral assumptions. (And don't tell me that "science makes assumptions, too" -- that's obviously correct, but the point here is that morality requires assumptions in addition to the assumptions we need to get science off the ground.) We can have a productive conversation about what those assumptions should be once we all admit that they exist.