I've lived in the USA all my life, so this answer will reflect what I've been taught as being politically correct, and observed from the perspective of an American.
The best thing that you could probably do, would be to let the other person make the first move, and then decide (based upon how fluent their English is) if you want to switch to Spanish. Of course, this isn't always possible. If you have to start off the conversation, I think it would be best to begin with English, as it is language of the realm, and therefore the other person would, in the least, be expecting it. Once you have started communicating, if you see that their English is good, you may either simply stick with it, or at some point just mention that you speak Spanish and see where that takes you.
If however the other person shows that they don't have the ability to communicate coherently in English, then you have no choice but to switch to Spanish. From what I've observed, it is generally customary to ask the person if they speak Spanish first (even if it is obvoious that they do.) Another method might be to switch languages by commenting on something, rather than directly addressing the person. Something as simple as Está muy bonito el dia, ¿verdad? can make transitions much easier.
From what I've seen, most Spanish speakers won't be offended if you do switch to Spanish from English, although some may act a bit timid, until you do.
One last point to consider is the fact that the other person will probably also be as anxious about trying to choose the right language to use in response to you. If they know some English, they may want to be polite and try to use it to make you feel comfortable.
All in all, it really depends on the situation you're in. Remember that the point of speaking is to communicate (that is, to share ideas, and learn new ones), whatever method will get you to that point is going to be the best.
I hope this helps. :)