This question can't be generally answered. There is no "best practice", it really depends on many factors.
Nevertheless this topic has just recently been discussed at the DDD/CQRS mailing list. Read it and you will probably find some interesting and helpful points over there.
Oh, and here's a blog post on the topic: Business Errors are Just Ordinary Events