Consider the following 2 queries:
where tblA.a not in (select tblB.a from tblB)
from tblA left outer join tblB
on tblA.a = tblB.a where tblB.a is null
RDBMSs "rewrite" queries to optimize them, so it depends on system you're using, and I would guess they end up giving the same performance on most "good" databases.
I suggest picking the one that is clearer and easier to maintain, for my money, that's the first one. It's much easier to debug the subquery as it can be run independently to check for sanity.