I have only used ctags, so this response only deals with that.
To ctags, you can specify whether to append or replace the tagfile, where to store the resulting tagfile, what to tag, etc. This the script that i use to update the tag files.
set tags[-+]?= is how to set the the location of a tag file in vim. You can use autocmd to set the tag file(s) based on directory or file name. See :h au | :only (vim online help on au in the full window) for more information. Note that the au command understands only the shell regex.