I like "Software Developer". What we do isn't anywhere close to engineering, but programmer feels a little constrained to just the coding aspect of the job.
Yeah, I'll use that one sometimes, including with other software folks. I think it pretty much captures the whole thing.
"Software engineer" I reserve for certain contexts in which I suspect I might be penalized for using another term. I don't think it's very accurate for like 99.5% of all "software engineer" jobs. Feels like using "sandwich artist" for "dude who works at Subway".
[EDIT] Not "professional", though, admittedly. Usually "computer programmer".