Consider each question on a case-by-case basis.
This isn't as cut and dried as it first appears. In some cases, the options will obviously have a "base" selection ('cheapest' for example), and that can be pre-selected with no issue. Making your users' life easier is your ultimate goal in all situations. But we also don't want to introduce unintended errors, or worse, have them leave because they have been offended by some cultural bias that wasn't considered.
Pre-selection is nice most of the time... but...
Consider, when there is no obvious starting choice, when all options are equally valid. What if they all cost the same, or are a choice between opinions? What if they are gender selections, and pre-selecting may be considered offensive to one or the other sex? In these cases, you run the risk of the user not making a conscious choice, and selecting something that wasn't intended... by default.
Also, in some case (such as on a survey or similar), there absolutely is no best answer. Pre-selecting a value (not to mention which one? "No opinion"?) runs the risk of skewing your results. Some users will not "take it serious" and just blow through with the defaults.
In reality, it isn't the form that should be one way or the other, but each question should be considered on its own merits and handled in the most appropriate way.