In my opinion DDD tends to complicate what is simple. This discipline calls value Object what is usually called the types by value, and of entities what is usually called the types by reference. Understand more about this in question about C#.
Types by value have their own identity and any change in their value has another object, without altering the identity, while if two distinct objects have exactly the same state they can be considered equal. Types by value do not have associated objects, the object is treated directly in your storage location. They exist independent of other objects.
Types by value are usually immutable and small. They represent something unique, such as quantifications or very simple descriptions. Types do not escalares of any language are usually value Objects.
There are cases of types that are by reference as facilitator, but they remain value Objects, is the case of string.
Dates are usually great examples. Codes, various monetary values or other quantities, location points, identifiers, telephone, any simple descriptive data (URL for example), etc.
Really, these posts, for those who do not know much about DDD, play against it. But, it is very simple to use a Value Object
– Gabriel Simas