You can only send an iMessage to an iPhone. It will default to iMessage if the receiver has an iPhone. If it's sending as SMS, the receiver either has no internet connection, or they don't have an iPhone and there's no way to send them an iMessage.
Oops... misread your post so ninja edit. If you are on Wifi, it should default to iMessage unless the other person isn't capable of receiving them because they don't have an iPhone, or are offline. I know I'm reiterating, but, can't delete the post so.
You can only send an iMessage to an iPhone. It will default to iMessage if the receiver has an iPhone. If it's sending as SMS, the receiver either has no internet connection, or they don't have an iPhone and there's no way to send them an iMessage.
That setting affects your messages to other iMessage users. It doesn't affect your SMS messages to non iMessage devices.
If you have the setting turned on, iMessages will fail over to SMS if iMessage isn't available for some reason. With it off, iMessages don't fail over if iMessage is unavailable for any reason (so they typically stay in "sending" state from my experience).
I have this setting turned off due to my provider now charging for SMS to the USA (I'm in Canada). I have family in the USA and occasionally iMessages would fail over to SMS but now that would cost me money. So having it turned off saves me unexpected costs.
I have several Windows Phone, Android, and Blackberry friends and this setting does not affect my messages to them. All still send and receive as SMS without issue.