If you have C# experience, I believe it is similar ( but more of a Ruby-trick ) to the null-coalescing (??) operator in C#
int? y = x ?? -1
x is assigned to y if x is not null, otherwise the "default" value of -1 is used.
Similarly, ||= is called the T-square operator I believe.
a || = b
or
a || a = b
Coming to your statement
@_current_user ||= session[:current_user_id] &&
User.find(session[:current_user_id])
Basically, it sees if @_current_user is nil or not. If it has some value, leave it alone ( the current user. ) Else, get the current user from the session using the user id. It first sees if the id is in the session, and then gets from the User.
Look at the blog below for more info on the "T-square" operator:
http://blogs.oracle.com/prashant/entry/the_ruby_t_square_operator