Advice for Graduate School in Computer Science
I want to disagree slightly with Dave Clarke and Lev Reyzin.  At least in my department, PhD admission standards for students with MS degrees are higher than for students with only bachelor's degrees.  Additional experience can be a disadvantage, if it isn't enough additional experience.

All else being equal, my department expects any applicant with an MS to have a publication, or at least a publishable result, before we will consider them for admission to the PhD program.  (And by "published", I mean in a reputable peer-reviewed web-accessible conference proceedings or journal, not just a master's thesis, internal technical report, student research conference, or The Inaccessible Chinese Journal of Computer Science.)  Working a full time job is unlikely to leave you enough time—or more importantly, enough mental energy—to do publishable research.

Of course, ceterus is never paribus.  We do soften the de facto publication requirement for  MS applicants who have switched major fields.  But then you're in the uncomfortable position of explaining a perceived weakness.  (On the other hand, I'm not sure switching from mathematics to theoretical computer science counts as "major".)

My advice is not to put your eggs in one basket.  First, talk to people you might work with in the programs you are interested in.  Let me emphasize the plurals here — talk to multiple people in multiple departments.  Second, in the absence of specific contradictory advice from target departments, apply to both MS and PhD programs.  (Some universities, or at least their web forms, stupidly make you pick one or the other, in which case you must talk directly to the admissions office of your target department.)  Sane PhD programs let incoming students from other fields take undergrad CS courses for remediation.