Tipping in the Czech Republic is commonly expected.  Foreign visitors are often expected to tip at least 10%. (N.B. This practice holds true mainly in Prague and leading tourist "meccas" such as Cesky Krumlov, not in the general countryside, where foreigners are not expected to do anything more than locals.) Locals rarely leave a substantial tip in pubs or low-mid range restaurants, often leaving a few Crowns from the change rounding up to the nearest 10. This practice is changing as the economy grows and about 10% tip is quite usual in better restaurants.

Service here is often not up to the same standard as in many other places in the world but it is getting better. Service staff is not so sullen anymore. But still it is more common to judge the service not by smile-quotients (Czech people are not used to smile at you at all times as e.g. Americans do), but by whether the order was taken promptly, the correct food was delivered, the bill was added up correctly and the food was good. Czech waiters do not routinely ask whether you enjoyed your meal or if everything was to your liking, however it is becoming quite usual in average-good restaurants especially the ones in the tourist areas.

The waiters have their own salary independent on the tips but it is quite low and especially in more expensive restaurants the amount they earn from tips can be even higher than the base salary.

So in conclusion if you were satisfied it is common to leave around 10% tip (rounding up to some nice number when paying) but if you weren't satisfied you don't have to leave anything. If you on the other thought that the service was exceptional nothing is stopping you from leaving more.

Other suggestions 

In many traditional places, you'll see the waiter jot down your order on little paper slips which he leaves on your table. Don't mess around with it because many times it's the only record of what you ordered.

The tip can be left on the table but since when asking for the bill, the waiter will usually wait by your side until you pay it is more common to give the waiter the tip directly - just tell the waiter the total amount he should give you change for. So for example if the waiter gives you bill for 279 czk you just hand him 500 czk bill and say 300 he will give you 200 czk bill hundred back. This way neither of you has to deal with small change and the tip is 7%.

Credit cards are somewhat hit or miss in majority of the restaurants, with the exception of the more upscale ones in Prague and other major cities. Sometimes even the restaurants that have the terminal for paying with card allow you to do so only if your bill reaches certain amount. Tipping by credit card is considered somewhat undesirable, as some establishments will take part, if not all, of a credit card based tip "for the house" rather than passing it along to the server.  If you are paying by a credit card, give the server a tip when he returns your paying slip, or if paying by cash just round up the bill as you are paying.

It is quite common for every guest to pay his bill separately, in some cases, the waiter will ask you to pay at the cash register, often resulting in a queue.  

BEWARE: As of 2006, some restaurants in Prague have begun putting little disclaimers stating "Service is not included" at the bottom of the guest check. THIS DOESN'T MEAN YOU HAVE TO LEAVE THE TIP!  By Czech law, service IS included, but a TIP is not included. This is written there just to remind you that tip is not added automatically to the bill and it is up to you to decide whether you want to give it or not. And never, ever reward bad, rude, sullen or sneery service! Doing so makes it harder for everyone and does nothing to help people here learn that tips are a reward, not a right!

WHEN PAYING IN CASH: Be sure to count your change when paying in cash, especially when using a larger bill. Some Czech people do not give the right amount -- they are always short.. About 80% of tourists who pay do not count them, so this has become a bit of a norm for these people. Some would give you change in 20's and 10's, 2's and 1's, making it difficult for the unfamiliar tourist to count.