[button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
Of course, there is also:
[[button titleLabel] setTextAlignment:NSTextAlignmentLeft];
The difference is that the first method sets alignment of the button content, and the second one sets the alignment of the text in the label. But the label frame is as wide as the text is. So if the label has only 1 line, it will always be centered.