Using armoryengine:
After it loads the blockchain with TheBDM.setOnlineMode(True) does it continually monitor for new blocks from bitcoind? Or do I need to reload the whole blockchain to see new transactions?
You don't need to rescan, but there is a monitoring loop that needs to be run. I don't remember how exactly to set that up... but obviously Armory (application) does it, so you can look there for hints. It might be as simple as "readBlkFileUpdate()", which checks where the end of the last block was in the blkfiles and determines if anything new has been added. If your wallets are registered with TheBDM, they should update automatically. That's 95% of what you need to do, but you should check where that function is called in Armory to determine if it needs more. (
EDIT: check armoryd.py -- it implements this monitoring loop with a much more minimal context. It might be easier to figure it out from there.
And is there a way to just load the last few months worth of blocks to speed up the loading of the blockchain? Say I have an address I just generated, I know there won't be any transactions to it from before today, I don't really need to load March 2013 transactions, right? I can assume bitcoind validated everything when it downloaded them.
Theoretically, yes, but it's not setup that way. If the blockchain is already loaded, you can add the new address/wallet with a "born-on" block, and it will determine that it only needs to rescan those blocks. But I also seem to remember having the thought that it was kind of complicated to do a partial rescan and for addresses/wallets older than a couple days, I just wipe and rescan everything.
If I can ever finish this "persistent blockchain" update, the very first implementation will actually have a full-address-index lookup, so you won't ever have to rescan anything, except when you completely rebuild the DB (if say, it was corrupted). You should be able to import addresses and wallets nearly instantly. Of course, it comes with a huge HDD hit, but it's far preferable compared to high RAM usage, and makes it much easier to run advanced processing of blockchain information. Stay tuned for that one ... I'm battling a lot more changes than I thought I would need to, but it looks feasible.