This will come close to what you want:
declare @two table (id int, value int)
insert into @one select 1, 11 union all select 2, 12 union all select 3, 13 union all select 4, 14
insert into @two select 1, 21 union all select 2, 21 union all select 1, 31 union all select 2, 32
select *
from @one one
full outer join @two two
on one.id = two.id
Only the duplicates of the non-matching rows won't be produced by the above query.
Edit: I see Chriss provided a sample including the duplicates...