I tend to view "software engineer" as having a more enterprisey connotation. Sort of hints at architecture and workflow-- Agile, UML, capabilities models, JavaBeans, design patterns, etc. So I'd apply it to some programmers/developers/engineers, but not as a general term for all. Admittedly, that might just be because when I think "software engineer", I immediately think of the research area of Software Engineering, which emphasizes those subjects, so non-programmers might not hear the same connotations.