As Tim said, I'd normaly do it the same way, too. However there is another alternative, although I can't say if it's any better (I'd say it's about equal if your original query is executed with nested loops):

Code:
select
   m.acctname,
   (select regname from regions where regid = m.movefromid) region_from,
   (select regname from regions where regid = m.movetoid) region_to
from movework m;
Offcourse, the output of this query will be different if there is any moveID in the MOVEWORK table that has no corresponding entry in the REGIONS table - this query behaves the same as your's would if you had used outer joins...