Pretty much. Once upon a time Verilog required a sensitivity list. When any of the signals in the sensitivity list changed value then the simulator would descend into the always block.
reg a;
always @(b, c)
begin
if (b)
a = 1'b1;
else if (c)
a = 1'b0;
else
a = 1'b0;
end
Engineers found this annoying since the simulator or synthesis tool should be able to infer the sensitivity list by analyzing the signals in the always block during compilation. So the always @(*) construct was introduced, saving engineers a few keystrokes, and saving a lot of hours debugging the design due to a missing signal in the sensitivity list.
reg a;
always @(*)
begin
if (b)
a = 1'b1;
else if (c)
a = 1'b0;
else
a = 1'b0;
end