||The exact meanings of the titles and nature of the work will vary from employer to employer. The US Department of Labor has one set of definitions (together with a somewhat outdated set of "outlooks") for several IT-related titles at http://www.bls.gov/oco/oco1002.htm.
Some overly general definition of the items in your list:
- Programmer: This title can mean a variety of things. Sometimes this is a catch-all title that includes differing positions in architecture, design, development, verification, and validation. Sometimes there is a verful distinction beween Analysts and Programmers (usually when a set of applications all center around a common database.
- Product (Software/etc) Quality Assurance / Tester: There is a large difference between QA and Testing. Testing (verification) is a process used to quantify they likelihood that the software meets requirements. Quality Assurance is the broader concern that the processes defined for producing the product were followed; this includes assuring that all required test cases have been executed, but may also involve verifying that inspections and walkthroughs occurred, internal and contract standards were followed, etc.
- Team Manager (project manager): Again there is a difference between a Team Manager and a Project Manager. Typically a team manager holds the "jacket" for the members of the team. S/he has the responsibility to hire, appraise, equip, and train the team. A project manager deals with managing the project; breaking it down into tasks, getting resources assigned to the tasks, scheduling the tasks, and managing the execution of the project. In many companies Project Management is a technical, not a management position; in others the roles may be combined.
- Database / System Modelling: In some environments model-based development is the key bridge from requirements to design. The System Analyst title is one that plays here for some forms of Database modeling.
- Software Engineer: This is again an ill-defined term (and in some US jurisdictions illegal designation where the term Engineer is a protected term with certain legal ramifications). In general a Software Engineering title is similar to my description of programmer above. The implication of a company using this title is that they are trying to emphasize that software development is an engineering problem and needs rigorous engineering processes applied to it. There are endless debates as to whether the current software body of knowledge is sufficient to allow engineering practices to be applied to development.
- Systems administrator: This is usually more of an operations-side of the business. S/he is the one you go to to reset passwords, increase quota, etc. The administrators "own" the systems they administer in that they need to manage the resources on the machines and assure that the applications on these systems continue to run smoothly.
- Network Engineer: This goes beyond cabling to all aspects of network architecture, design, planning, implementation, and oversight. Depending on the IT shop this can include the care and feeeding of many operating systems, servers, and applications as well.
The quick answer to the difference between a software architect and a software engineer is that to some extent a software architect is a more focused term: it describes an individual who defines the architecture (the highest level of the design) of a software-based system. Software architecture is a piece of the overall software engineering process.
There are, of course many more titles out there. Some of the descriptions I have above are split into finer grained titles, other places look for Jack/Jill-of-all-Trades who can fill in on a wide variety of these assignments. In some cases Software Engineer is used to describe your entire list until you get to the operations-side titles. You will in general be much better off asking a prospective employer (and even better your prospective peer employees) what it is they do day to day.