The Wikipedia page on
Value Object does
not equate them with DTOs - rather, it has a "see also" link to
Data Transfer Object. If you read the description of each, they are not the same thing.
The term Value Object was originally coined by Martin Fowler. Later, Sun engineers used the term to mean something completely different, and published this usage in their J2EE blueprints and in the book
Core J2EE Patterns. The patterns community of course objected to this BS, and in the 2nd edition of
Core J2EE Patterns they changed their misnamed "Value Object" to "Transfer Object". This is the thing that everyone now knows as DTO.
So basically, if you see a book or web site that talks about Value Objects or VOs as if they are something you use to send or receive data from a remote entity like a database or EJB, they are wrong. Just pretend they said "DTO" instead, and all will be well in the world.