A logical text character style is where you specify what the piece of text is doing in your web page, or perhaps the kind of effect you are trying to achieve. For instance, often we want to emphasise the important words in a sentence. As well as emphasis, sometimes you want to make something stand out even more strongly because it is very important.
Very often, particularly when writing about computing
or Internet topics, it's useful to be able to write
something as it would appear in a text editor
(e.g. when editing a program).
You often see URLs written like this:
http://www.inst.co.uk/ as it makes
the different characters easy to see separately.
This is the CODE style.
Another logical character style is when you want to refer to another work, "like the titles of books or films" (Creating documents for the World Wide Web, first edition, section 1.6.2).
Physical text character styles, on the other hand, are where you specify the appearance of the text. This is useful when you are talking about the appearance of a piece of text elsewhere. For instance, when Netscape shows the page source, comments are in italics and tags are shown BOLD. Actually, the page source window shows everything in a "teletype" fixed-width font, but it is not fully predictable what a browser will do if you try to do more than one text character style at a time: within teletype font, this is trying bold and italic. It sometimes works!
In general, logical character styles are more useful than physical ones, because if the browser can't do the physical character style you have specified, it will display ordinary text. With logical character styles, however, if a text browser, working on a teletype terminal (using a single fixed-width font all the time) and showing white text on a black background, can't show emphasised things in italics, it can perhaps show them extra bright, or in a different colour, instead. If you want a general rule, stick to logical character styles unless there is a good reason to use physical ones.