as far as actual DPs, if one party declares war, the DP is automatically cancelled. so sometimes bribing one of the folks into war can work in your favor, if the friend doesn't decide to dogpile in. of course the one you bribe will ask you for help in the war, so that will have a diplomatic effect or delay your planned attack on the less powerful one.
it is also sometimes possible to get one party in a defensive to stop trading with the other party. it's usually very expensive, since they're by definition betraying a friend, and often it's redlined. tokugawa is one example that i've done it with tho. he's a weirdo, he will never sign a PA, but he'll sign a DP at Pleased and most leaders will only sign one at Friendly. but, he's even tho he's quick to sign DPs, he's also rather easy to bribe into not trading with his DP partner. i bribed him to stop trading with whoever the DP was with. this does not cancel the DP directly. but it was enough to take the other leader from Friendly down to Pleased, and then they broke the DP because their limit was Friendly.
getting one party to change religions or civics, if the two are getting along partly due to modifiers in those areas, might do the trick too.
i don't know of an easy way to get AIs straight from friendly down to annoyed or cautious, like you asked in your second paragraph. well, if catherine is one of the parties it can be easy. she can actually be bribed into declaring war on someone she is Friendly with, and that is usually enough to make that person Annoyed

. the stop trading, convert religion, change out of the other guy's favorite civic if it's not his own favorite civic too, ideas that i suggested don't usually drop things down to cautious, but it's usually enough to go from Friendly to Pleased, and that's usually enough. for all but 5 or 6 leaders, you have to be friendly to get (and keep) a DP. they watch how much they like you, and if you drop below the limit they will break off the DP.
edit: haha a very late crosspost! i started replying, then talking on the phone, and didn't check for new replies before i finished and entered mine.