Hi Ryan
Period end:
Period end is optional (note it isn't called "Month end") and really the only thing it does is move paid current activity to history (and it doesn't even do that if "clear transaction detail by" is set to Billing Cycle in Receivables). It also updates the Period-to-date statistics, but in 25 years of being a consultant I've never seen a client actually use those figures. Period end can be done at any time. The only downside I can think of is if you want to print customer statements that includes paid activity; then you should only do it after you've printed the statements.
Year end:
Year-end sets the batch numbers back to 1 and updates the YTD and LY statistics.
Since you have total control over Receivables activity, the answer is easy - you should run year-end after entering all of the year's invoices and cash receipts, but before entering any of the next year's activity.
For Payables, there is no perfect time to run year-end. I would suggest doing it after your last check run, and not worry about straggler invoices.
Steve