A minimum of 0 witness (Yep! You are allowed to not vote any witness) and a maximum of 30 witness.
When voting a witness, see to it that you are using small letters when inputting the username of your chosen name. I've received some questions before asking me as to why their witness vote didn't went through or did not reflect on Steemit.com and/or blockexplorers like Steemd.com. It seems that the blockchain will reject a witness vote transaction if some of the letters were in camel case or some of the letters are in capitals. So just to be sure, do it in all small letters when voting for a witness. XD
Every user has a maximum of 30 witness votes. You can undo them at any time and revote for someone else.
The easiest way to check is to go to steemworld.org and look up account details. It will tell you what witnesses you are voting for and how many. I am currently voting on 18 and will one day decide who else deserves a vote.
If you look at the bottom left on the same page you will see a complete list of witnesses on Steemit. You can vote directly from this site.