The best peace time tactics that I use is the olde create a town next to their colony trick. It claims the resouce, and no ill diplomatic consequences, even if they have troops stationed on it.
I also look for small places that I can plunk a town down on their continent that will grab some of their city tiles. Remember, not within their borders. If we're at war, I don't care where I put it. The situation works out like this: If they don't assimulate the town on culture, we each have a small town that doesn't produce squat. If they do assimulate the town on culture, they have 2 small non-producing towns. They have to station troops in the town and generally deal with its upkeep and moods. AND of course the mood is not content, since it is one of my towns. This is far better than them having another major town.
During wartime, I'll sometimes send a settler in and camp a spot next to one of their big cities. If they raze the town, they have to deal with the "International Incident" and I look like the "injured" party. If they don't raze the city, they have to divert food/shield resources from their other city. You gain either way.
I often station destroyers about 4 squares off my nautical limits, separated just enough that their visual ranges overlap. You will need lots of them. This way i am aware of all traffic within about 8 squares of my coast. It effectively doubles my visual range, beyond the standard 1 square beyond nautical limit. It gives you time to react to the invasion fleets, and accompanied settlers incoming to your area. Not so sneaky, but even bitter rivals just wander right by them, and I use a small fleet in the rear to deal with the issue.
If I want to goad a rival into declaring war on me, so that my populace reacts more positively, I send in workers and start creating roads to the places that I am going to attack. This way, once my troops take over their city, I have a nice road to ferry troops over that is already made.