Well... generally speaking jackets and waistcoats match because they were bought at the same time as part of a set (like a three piece suit-- jacket, waistcoat, and trousers). While it is a good idea to try and have the jacket and waistcoat match, it's not absolutely necessary. A navy blazer, red waistcoat, and grey trousers wouldn't necessarily look bad.

To work though, there has to be a reasonable amount of contrast between the waistcoat and the jacket. So wearing a black waistcoat with a navy blue jacket wouldn't look as sharp as wearing a black waistcoat with a grey jacket. Since most jackets are dark, the best option is for a light coloured waistcoat.

You could do worse than having a mid-tan, a moss green, a pearl grey, and deep red waistcoat in your closet as they will work with most colours. The tan, grey, and red will go with navy/black, and the green will go with tans and browns, and the tan will also work with greens.

What you want to avoid is wearing a coloured waistcoat with formal evening attire-- generally speaking you should stick with a waistcoat the same colour as the jacket after six o'clock. You can bend these rules a little depending on where you are going and what you are doing, but by and large a red waistcoat with a PC is something of a no-no.