Edited: After reading some of the newer answers, I have to root for "Yes/No" or "True/False".
When using those, two magical things happen:
The user won't even think of what "dual options" might be, which "states" to offer etc., because this input will only suit a certain kind of question.
This only needs a label, whereas the other options require the label and the possible values to be specified – which means more, and more complex input from the user, resulting in more margin for error/ambiguity.
"Yes or no" is just a special case of "One of a list of Choices" and should not be mixed up with a checkbox. As a matter of fact, we often still see checkboxes implemented with a "yes/no" dropdown, and that makes perfect sense. However, the two are very different in nature as soon as more than two options are required.
Whereas most inputs are straightforward, as soon as it comes to choices things get complex and we have various inputs to choose from that do very similar, or the same, thing in slightly different ways. Consider for example a choice out of this list:
If its one out of many, we can choose between List Box, Dropdown and Radio Buttons.
It its any out of many, we could use a List Box or a Checkbox List.
Most of the time it depends on the exact phrasing of the label and the number of options to choose from which input works best, but it's actually quite complex coming up with the optimal solution. Imagine Radio Buttons for Country Choice, or a List Box for Yes/No. Both are absurd, yet I have seen both implemented.
To wrap it up:
I'd offer "Yes/No" and, if really, really necessary, "One of a list of Choices" or "Any of a list of Choices".