This shouldn't need to be such a massive thread:
iPhone 4S, iOS 5.1:
On almost all GSM phones other than on AT&T, there is a 3G toggle.
CDMA phones never had this feature.
The ability is there (proven by those who have jailbroke their 4S), but AT&T does not want the switch there. They have been neutering their EDGE networks. Slowing them down and turning them off in some areas. Even though using EDGE can provide almost TWICE the battery life for making calls, AT&T doesn't want you using it.